Çift dosyaları sabit bağlantılarla değiştirmenin kolay bir yolu var mı?


136

findİki dizinde yinelenen dosyaları bulmak ve bir dizindeki dosyaları diğer dizindeki dosyaların hardlinkleri ile değiştirmek için kolay bir yol (muhtemelen bir komut içeren komutlar dizisi) arıyorum .

İşte durum: Bu, her kullanıcının kendi klasörüne sahip olduğu birden fazla kişinin ses dosyalarını depoladığı bir dosya sunucusudur. Bazen birden fazla insan aynı ses dosyalarının kopyalarına sahiptir. Şu anda, bunlar kopya. Sabit disk alanından tasarruf etmek için hardlinks olmalarını istiyorum.


20
Bağlantılı olarak karşılaşabileceğiniz bir sorun, birisinin müzik dosyalarından birine, bağlantı kurduğunuzda, diğer kişilerin müziğe erişimini istemeden etkileyebileceği bir şey yapmaya karar vermesidir.
Steven D

4
Başka bir problem ise, aynı kodlayıcıyla aynı kaynaktan alınsa bile, "Bazı Gerçekten Harika Tune" içeren iki farklı dosyanın bit için birebir aynı olmamasıdır.
msn

3
daha iyi bir çözülme, halka açık bir müzik klasörüne sahip olabilir ...
Stefan


1
@tante: Sembolik bağlantıların kullanılması sorun çıkarmaz. Bir kullanıcı bir dosyayı "sildiğinde", bağlantı sayısı azalır, sayım sıfıra ulaştığında, dosyalar gerçekten silinir, hepsi bu. Bu nedenle silme, hardlinkli dosyalarda sorun değil, tek sorun dosyayı düzenlemeye (gerçekten mümkün değil) veya üzerine yazmaya çalışan bir kullanıcı (giriş yapmışsa oldukça mümkün).
maaartinus

Yanıtlar:


41

Http://cpansearch.perl.org/src/ANDK/Perl-Repository-APC-2.002/eg/trimtrees.pl adresinde tam olarak istediğiniz şeyi yapan bir perl betiği var :

Komut satırında adı geçen tüm dizinleri geçin, MD5 sağlama toplamlarını hesaplayın ve aynı MD5 ile dosyaları bulun. Eşitlerse, gerçekten eşitlerse gerçek bir karşılaştırma yapın, iki dosyanın ikincisini birincisine sabit bağlantıyla değiştirin.


Sesler mükemmel , teşekkürler !! Bunu deneyeceğim ve açıklandığı gibi çalışıp çalışmadığını kabul edeceğim!
Josh,

3
Bu tam olarak istediğim şeyi yaptı. Bununla birlikte, dedup ile ZFS'nin sonunda yapmanın bir yolu olacağına inanıyorum, çünkü dosyaların çok az farklılığa sahip olduğunu buldum.
Josh,

11
Bunu oyladı, ama biraz daha araştırdıktan sonra ben yapmadım. rdfindTÜM büyük platformlar (os x, linux, (cyg) win, solaris) için paket yöneticileri aracılığıyla kullanılabilir ve yanan bir yerel hızda çalışır. Bu yüzden aşağıdaki cevabı kontrol et.
oligofren

@oligofren Ben de aynısını düşünüyordum ama sonra çarptım [Errno 31] Too many links. Bu senaryo, onu idare eden tek şey gibi görünüyor.
phunehehe

5
Yalnızca aynı boyutta en az bir başkasının bulunduğu dosyalar yerine her bir dosyayı sağlama, gereksiz yere verimsizdir (ve gereksiz şekilde karma çarpışmalara eğilimlidir).
Charles Duffy

85

rdfindtam olarak ne istediğinizi yapar (ve neden johny sırayla listeler). Çiftleri silmeyi, yumuşak ya da sert bağlantılarla değiştirmeyi mümkün kılar. symlinksSizinle birlikte , sembolik bağlantıyı mutlak veya akraba yapabilirsiniz. Hatta checksum algoritmasını (md5 veya sha1) bile seçebilirsiniz.

Derlendiğinden çoğu komut dosyası çözümünden daha hızlıdır: timeMac Mini'de 2009'dan itibaren 2600 dosya bulunan 15 GiB klasöründe bunu döndürür

9.99s user 3.61s system 66% cpu 20.543 total

(md5 kullanarak).

Çoğu paket işleyicide bulunur (örn. Mac OS X için MacPorts).


11
+1 Kullandım rdfindve onu sevdim. Ne -dryrun trueyapabileceğini bilmeni sağlayacak bir seçeneğe sahip. Kopyaları sert bağlantılarla değiştirmek de aynı derecede basit -makehardlinks true. Güzel bir kütük üretti ve bana ne kadar yer kaldığını bildirdi. Ayrıca, yazarın kriterine göre , rdfind, duff ve fslint'ten daha hızlı.
Daniel Trebbien

Oooh, güzel. Fdupes kullanıyordum, ancak son iki Ubuntu 14.10'da hardlinke dupes için -L seçeneği eksik. Oldukça yavaştı ve OSX'teki Homebrew için yoktu, bu yüzden bu cevap daha iyi. Teşekkürler!
oligofren

Çok akıllı ve hızlı algoritma.
Ndemou

2
Bu aracın performansının algoritma ile daha fazla ilgisi var ve derlenmiş bir araç ya da komut dosyası olup olmadığına dair daha az şey olduğunu düşünüyorum. Bu tür bir işlem için, disk hemen hemen her zaman tıkanıklık olacak. Komut dosyası içeren araçlar, CPU'yu sağlama toplamı üzerinde yazarken devam eden eşzamansız bir G / Ç işlemine sahip olduklarından emin oldukları sürece, yerel bir ikili gibi gerçekleştirmelidirler.
cdhowie

rdfind, yeni işletim sistemi ve derleyiciye çok bağımlıdır. (CentOS 6.x'te geliştirme araçlarının neredeyse tamamen yeniden oluşturulması gerekmeden yayınlanmayacaktır)
Cosmo F

49

fdupesAracı kullanın :

fdupes -r /path/to/folderdizindeki kopyaların bir listesini verir (-r onu özyinelemeli yapar). Çıktı şöyle görünür:


dosyaadı1
dosyaadı2

dosyaadı3
dosyaadı4
dosyaadı5


dosyaadı1 ve dosyaadı2 aynı ve dosyaadı3, dosyaadı4 ve dosyaadı5 de aynıdır.


1
Ubuntu Not: Eylül 2013 itibariyle, kararlı bir sürümü olmamıştır (1.50-PR2-3'te), bu nedenle güncelleme henüz ubuntu'da görünmüyor.
Stuart Axon

11
Hem Ubuntu hem de Debian'a fdupes_1.50-PR2-4'ü yüklemeyi denedim, ikisi de -L bayrağına sahip değildi. Neyse ki github.com/tobiasschulz/fdupes adresinden inşa etmek süper kolaydı.
neu242,

3
Deneyin rdfindgibi - fdupes, ancak daha hızlı ve kullanılabilir OS X ve Cygwin de.
oligofren

6
fdupesIMO sorusuna bir cevap değil, sadece kopyaları bulmak gibi görünüyor;
Calimo

2
Buna jdupesdayalı olarak adlandırılan benzer bir araç var fdupes, ancak yinelenen dosyaları symlinks ( -l), hardlinks ( -L) ile değiştirebilir veya btrfs'ye dosya sistemi düzeyindeki blokları tekilleştirmesi talimatını verebilir ( -Bbtrfs kullanıyorsanız).
Marius Gedminas

23

Kullandığım hardlinkgelen http://jak-linux.org/projects/hardlink/


1
Güzel ipucu, düzenli olarak kullanıyorum code.google.com/p/hardlinkpy ama bu bir süredir güncellenmedi ...
meduz

2
Bu hardlink, Fedora / RHEL / etc üzerindeki orijinal ile benzer görünmektedir .

1
hardlinkşimdi birçok Linux paket sisteminde (~ 2014'ten beri) yerli bir ikili ve son derece hızlı. 1,2M dosyalar için (320GB) sadece 200 saniye sürdü (dosyaların yaklaşık% 10'unu birbirine bağladı).
Marcel Waldvogel 19

FWIW, yukarıdaki hardlink, Julian Andres Klode tarafından, Fedora hardlinkise Jakub Jelinek tarafından yaratıldı (kaynak: pagure.io/hardlink - Fedora paket adı: hardlink)
maxschlepzig,

18

Bu "fslint" tarafından sağlanan fonksiyonlardan biridir - http://en.flossmanuals.net/FSlint/Introduction

"Birleştir" düğmesini tıklayın:

Ekran görüntüsü


4
-M kopekleri birlikte kopyalayacak, -d biri hariç hepsini silecek ve -t kuru çalışacak, ne yapacağını
yazdıracak

1
Ubuntu'da burada yapılacaklar: sudo apt-get install fslint /usr/share/fslint/fslint/findup -m /your/directory/tree(dizin / usr / share / fslint / fslint / varsayılan olarak $ PATH değil)
Jocelyn

14

Ana hedefiniz disk alanı kazanmak olduğundan, başka bir çözüm daha var: dosya sistemi düzeyinde çoğaltma (ve muhtemelen sıkıştırma). Sabit bağlantı çözümüyle karşılaştırıldığında, diğer bağlantılı dosyaları yanlışlıkla etkileme sorunu yoktur.

ZFS, havuz sürüm 23'ten itibaren bir tekilleştirme (blok düzeyinde, dosya düzeyinde değil) ve uzun zamandan beri sıkıştırma yapıyor. Linux kullanıyorsanız, zfs-fuse'u deneyebilirsiniz veya BSD kullanıyorsanız, yerel olarak desteklenir.


Muhtemelen sonunda gideceğim yol budur, ancak BSD'nin ZFS uygulaması kesinti yapıyor mu? Öyle olmadığını düşündüm.
Josh,

Ayrıca, DragonFlyBSD'deki HAMMER dosya sistemi veri tekilleştirme desteğine sahiptir.
hhaamu

14
ZFS dedup kimsenin arkadaşı değil. ZFS, 1Tb kullanılabilir disk alanı başına 1 Gb ram önermektedirse, 1 tb kullanılabilir disk alanı başına 32 Gb ram ile dedup kullanmaya çalışırsanız, fındıkları tıkarsınız. Bu, 1Tb'lik bir ayna için, 32 Gb ram'ınız yoksa, er ya da geç ram eksikliği nedeniyle makineyi durduracak olan bellek bomba koşullarıyla karşılaşmanız muhtemeldir. Orada bulundum, yaptım, hala TSSB'den toparlanıyordum.
killermist

4
Online tekilleştirme (yani her yazma kontrol) ile aşırı RAM gereksinimleri önlemek için, btrfskullandığı toplu veya çevrimdışı tekilleştirme (bunu / kullanışlı gerekli düşünün her çalıştırmak) btrfs.wiki.kernel.org/index.php/Deduplication
Marcel Waldvogel

3
Yedi yıl sonra güncelleme: Sonunda ZFS'ye taşındım ve veri tekilleştirmeyi denedim - RAM gereksinimlerinin gerçekten çok yüksek olduğunu gördüm. ZFS anlık görüntülerinin zekice kullanımı, kullanmamın yol açtığı çözümü sağladı. (Bir kullanıcının müziğini, anlık görüntüsünü ve klonunu kopyala, ikinci kullanıcının müziğini klonun içine kopyala, rsync --inplaceböylece yalnızca değiştirilen bloklar saklanır)
Josh


5

Çift dosyaları bulmak için duff kullanabilirsiniz .

Duff, verilen bir dosya grubunda kopyaları hızlıca bulmak için kullanılan bir Unix komut satırı aracıdır.

Basitçe çalıştırın:

duff -r target-folder

Otomatik bu dosyalara bağları oluşturmak için, çıkışını ayrıştırmak gerekir Duff ile bash veya başka komut dosyası dili.


Gerçekten yavaş olsa da - bkz. Rdfind.pauldreik.se/#g0.6
ndemou

5
aptitude show hardlink

Açıklama: Aynı dosyanın birden çok kopyasını sabit bağlantılar Hardlink, aynı dosyanın birden çok kopyasını algılayan ve bunları sabit bağlantılarla değiştiren bir araçtır.

Bu fikir http://code.google.com/p/hardlinkpy/ adresinden alınmıştır , ancak kod MIT lisansı altında sıfırdan yazılmış ve lisanslanmıştır. Ana Sayfa: http://jak-linux.org/projects/hardlink/


Burada bahsedilen tek program, maskesini kaldırmadan ve hardlink desteğiyle Gentoo için kullanılabilir, teşekkürler!
Jorrit Schippers

4

Burada belirtilen Linux için hardlinking araçlarının çoğunu kullandım. Ben de Ubuntu'da ext4 fs ile sıkışıp kaldım ve cp -l ve -s komutlarını hard / softlinking için kullanıyorum. Ama son zamanlarda fark hafif kopyasını içinde cp gereksiz disk alanı yedek ima adam sayfasında kadar bir tarafı olarak alır:

   --reflink[=WHEN]
          control clone/CoW copies. See below

       When  --reflink[=always]  is specified, perform a lightweight copy, where the 
data blocks are copied only when modified.  If this is not possible the
       copy fails, or if --reflink=auto is specified, fall back to a standard copy.

Sanırım şimdi cptakma adımı daima --reflink=autoparametreyi içerecek şekilde güncelleyeceğim
Marcos

1
Ext4 gerçekten destekliyor --reflinkmu?

7
Bu, btrfs ve OCFS2'de desteklenir. Sadece ext4 olmayan kopyalanabilen dosya sistemlerinde mümkündür. btrfs gerçekten şekilleniyor. Yansıma ve anlık görüntüler yüzünden kullanmayı seviyorum, büyük dosyalar üzerinde toplu işlem yapmaktan daha az korkuyor.
clacke

3

Bana göre ilk önce dosya ismini kontrol etmek işleri hızlandırabilir. İki dosya aynı dosya adına sahip değilse, o zaman birçok durumda onları kopya olarak görmezdim. Sırayla, en hızlı yöntemin karşılaştıracağı gibi görünüyor:

  • dosya adı
  • boyut
  • md5 sağlama toplamı
  • bayt içeriği

Bunu yapan herhangi bir yöntem var mı? Bak duff, fdupes, rmlint, fslint, vb

Aşağıdaki yöntem commandlinefu.com sitesinde en fazla oy aldı : Çift Dosyaları Bul (önce boyuta, sonra MD5 hashına göre)

Dosya adı karşılaştırması ilk adım, boyut ikinci adım olarak eklenebilir mi?

find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | \
  xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | \
  sort | uniq -w32 --all-repeated=separate

3
Ben kullandım duff, fdupesve rmlint, ve kuvvetle bakmak okuyucuları tavsiye Bunların üçte . Mükemmel bir seçenek kümesi (ve belgelere) sahiptir. Bununla beraber, diğer araçlarla kullanmak için ihtiyaç duyduğum işlem sonrası işlemlerden de kaçınabildim.
dubiousjim

3
Uygulamamda, dosya adı bakılacak en az güvenilir etkendir ve bunu yinelemede bulunduğum tüm çabalardan tamamen kaldırdım. install.shAktif bir sistemde kaç tane dosya bulunabilir? Bir dosyayı kaydetme ve isim çakışması geçirme sayısını, bazılarını anında yeniden isimlendirmek için sayamıyorum. Yan taraf: kaç kez farklı kaynaklardan bir şey indirdiğimi bilmiyorum, farklı günlerde, sadece farklı isimlerle aynı dosya olduklarını bulmak için. (Bu ayrıca zaman damgası güvenilirliğini de ortadan kaldırır.) 1: Boyut, 2: Özet, 3: Bayt içeriği.
Çingene

@GypsySpellweaver: (1) kişisel kullanım durumunuza bağlıdır, aynı fikirde değil misiniz? Benim durumumda, aynı ad ve içeriğe sahip dosyaların farklı geri yükleme klasörlerinde bulunduğu çoklu yedeklemelerden çoklu geri yüklemelerim var. (2) Yorumunuz yalnızca dosya adının karşılaştırılmasını varsayıyor gibi görünüyor . Diğer çekleri ortadan kaldırmayı önermiyordum.
johny neden

2

Perl hayranı olmadığım için, burada bash versiyonu:

#!/bin/bash

DIR="/path/to/big/files"

find $DIR -type f -exec md5sum {} \; | sort > /tmp/sums-sorted.txt

OLDSUM=""
IFS=$'\n'
for i in `cat /tmp/sums-sorted.txt`; do
 NEWSUM=`echo "$i" | sed 's/ .*//'`
 NEWFILE=`echo "$i" | sed 's/^[^ ]* *//'`
 if [ "$OLDSUM" == "$NEWSUM" ]; then
  echo ln -f "$OLDFILE" "$NEWFILE"
 else
  OLDSUM="$NEWSUM"
  OLDFILE="$NEWFILE"
 fi
done

Bu, aynı sağlama toplamına sahip tüm dosyaları bulur (büyük, küçük veya zaten sabit bağlantılar olsun) ve bunları birlikte sabitler.

Bu, ek bulma bayrakları (örneğin, boyut) ve bir dosya önbelleği ile tekrarlanan çalışmalar için büyük ölçüde optimize edilebilir (böylece her seferinde sağlama toplamını yinelemeniz gerekmez). Herhangi biri daha akıllı, daha uzun sürümle ilgileniyorsa, gönderebilirim.

NOT: Daha önce de belirtildiği gibi, hardlinkler, dosyalar hiçbir zaman modifikasyona ihtiyaç duymadığı veya dosya sistemleri arasında taşındığı sürece çalışır.


Komut dosyanızı nasıl değiştirebilirim, böylece sabitlemek yerine, yalnızca yinelenen dosyaları siler ve bir CSV dosyasına silinen dosyayı -> Astarlı Dosyaya bir giriş ekler. . ???
MR.GEWA

Elbette. Sabit bağlantı satırı: echo ln -f "$ OLDFILE" "$ NEWFILE" Sadece çift dosyayı sert bir link ile değiştirir, böylece $ NEWFILE yerine değiştirebilirsin.
seren

ve bir sonraki satırda nasıl olsa da bir metin dosyasına yazalım $ OLDFILE-> NEWFILE ???
MR.GEWA

Ahh, doğru. Evet, rm'den sonra şu satırları ekleyin: echo "$ NEWFILE" >> /var/log/deleted_duplicate_files.log
seren

2
Sakın tekerleği yeniden icat etme. rdfindYerel hızlarda çalışan ve sadece kurulum gerektiren brew install rdfindveya apt-get install rdfindkurulmasını gerektiren daha olgun çözümler vardır .
oligofren

1

Konuştuğunuz şeye benzer bir şey yapan bir Perl senaryosu hazırladım:

http://pastebin.com/U7mFHZU7

Temel olarak, sadece içindeki bir dizini dolaşır, içindeki dosyaların SHA1 değerini hesaplar, onu birleştirir ve eşleşmeleri birbirine bağlar. Pek çok durumda işe yarar.


2
Yakında bunu denemek için etrafında olsun umuyorum ... neden CPAN yüklemek değil ... App ::
relink

2
@ xenoterracide: zaten var olan tüm benzer ve daha olgun çözümler yüzünden. diğer cevaplara bakınız, özellikle rdfind.
oligofren

1
@oligofren Daha iyi çözümler olduğundan şüphem yok. TMTOWTDI sanırım.
amfetamachine



1

jdupes Bir yorumda bahsedilmiş ancak kendi cevabını hakediyor, çünkü çoğu dağıtımda büyük olasılıkla mevcut ve oldukça hızlı çalışıyor (sadece bir dakikada 2.7 GB'lık% 98 tam 158 GB'lık bir bölümü (SSD sürücüsü) serbest bıraktı):

jdupes -rL /foo/bar

0

Hardlinks yapacaksanız, bu dosyadaki haklara dikkat edin. Dikkat, sahip, grup, mod, genişletilmiş öznitelikler, zaman ve ACL (bunu kullanıyorsanız) INODE'de saklanır. Dizin yapısında ve diğer noktaların INODE özelliklerinde depolandığından yalnızca dosya adları farklıdır. Bu nedenle, aynı inode'a bağlı tüm dosya isimleri aynı erişim haklarına sahiptir. Herhangi bir kullanıcı diğerine dosyaya zarar verebileceğinden bu dosyayı değiştirmemelisiniz. Basit. Bu yeterli, herhangi bir kullanıcı aynı dosyaya başka bir dosya koydu. Daha sonra inode numarası kaydedilir ve tüm hardlink isimleri için orijinal dosya içeriği imha edilir (değiştirilir).

Dosya sistemi katmanında tekilleştirme daha iyi bir yoldur. BTRFS (son zamanlarda çok popüler), OCFS veya bunun gibi kullanabilirsiniz. Sayfaya bakınız: https://en.wikipedia.org/wiki/Comparison_of_file_systems , tablodaki uzmanlık Özellikler ve sütun veri tekilleştirmesi. Tıklayabilir ve sıralayabilirsiniz :)

Özellikle ZFS dosya sistemine bakın. Bu SİGORTA olarak mevcuttur, ancak bu şekilde çok yavaş. Yerel destek istiyorsanız, http://zfsonlinux.org/ sayfasına bakın . O zaman çekirdeği düzeltmelisiniz ve daha sonra yönetim için zfs araçlarını kurun. Anlamıyorum, linux neden sürücü olarak desteklemiyor, diğer birçok işletim sistemi / çekirdeği için bu yöntemdir.

Dosya sistemleri veri tekilleştirmeyi 2 yolla, veri tekilleştirilen dosyaları veya blokları destekler. ZFS, bloğu destekler. Bu, aynı dosyada tekrarlanan aynı içeriklerin tekilleştirilebileceği anlamına gelir. Diğer yol, verilerin veri tekilleştirildiği zamandır, bu çevrimiçi (zfs) veya çevrimdışı (btrfs) olabilir.

Dikkat, veri tekilleştirme RAM kullanır. Bu nedenle, neden FUSE ile monte edilmiş ZFS birimine dosya yazmak, performansın önemli ölçüde yavaşlamasına neden olur. Bu belgelerde açıklanmıştır. Ancak çevrimiçi olarak birim üzerinde tekilleştirme / kapanma ayarını yapabilirsiniz. Herhangi bir verinin tekilleştirilmesi gerektiğini görürseniz, sadece tekilleştirmeyi ayarlayın, herhangi bir dosyayı geçici olarak yeniden yazın ve sonunda değiştirin. Bundan sonra veri tekilleştirme kapalı ve tam performans geri yükleyebilirsiniz. Elbette, herhangi bir önbellek diskini depolamaya ekleyebilirsiniz. Bu, çok hızlı döndürme diskleri veya SSD diskleri olabilir. Elbette bu çok küçük diskler olabilir. Gerçek işlerde bu RAM yerine geçer :)

Linux altında ZFS'ye dikkat etmelisiniz, çünkü her şey olması gerektiği gibi çalışmaz, dosya sistemini yönetirken, anlık görüntüyü vb. Yaparken özel olarak çalışır, ancak yapılandırma yaparsanız ve değiştirmezseniz, hepsi düzgün çalışır. Başka bir deyişle, Linux'u opensolaris olarak değiştirmelisiniz, doğal olarak ZFS'yi desteklemelisiniz :) ZFS'de çok hoş olan budur, hem dosya sistemi olarak çalışır hem de LVM'ye benzer volüm yöneticisi. ZFS kullanırken buna ihtiyacınız yoktur. Daha fazla bilgi edinmek için belgelere bakın.

ZFS ve BTRFS arasındaki fark dikkat edin. ZFS daha yaşlı ve daha olgundur, ne yazık ki sadece Solaris ve OpenSolaris (ne yazık ki kahin tarafından boğulmuş) altındadır. BTRFS daha gençtir, ancak son kez çok iyi desteklenir. Taze çekirdeği öneririm. ZFS'nin çevrimiçi tekilleştirmesi var, bu da yazının yavaşlamasına neden oluyor, çünkü tümü çevrimiçi hesaplanıyor. BTRFS, çevrimdışı veri tekilleştirmesini destekler. Sonra bu performans tasarrufu sağlar, ancak ana makinenin yapacak bir şeyi yoksa, veri tekilleştirme yapmak için düzenli aralıklarla aracı çalıştırırsınız. Ve BTRFS yerel olarak linux altında yaratılmıştır. Belki bu sizin için daha iyi FS :)


1
Çevrimdışı (veya toplu ) tekilleştirme yaklaşımının btrfssahip olduğu hoşuma gidiyor . cp --reflinkBuradaki seçeneklerin mükemmel bir şekilde tartışılması ( seçenek dahil ): btrfs.wiki.kernel.org/index.php/Deduplication
Marcel Waldvogel

ZFS yalnızca Solaris veya OpenSolaris değildir. FreeBSD'de yerel olarak desteklenmektedir. Ayrıca, Linux'taki ZFS , aygıt sürücüsü tabanlı; FUSE üzerindeki ZFS farklı bir şeydir.
KJ See Married

0

Sabit bağlantılar en iyi fikir olmayabilir; bir kullanıcı dosyayı değiştirirse, her ikisini de etkiler. Ancak, sabit bir bağlantıyı silmek her iki dosyayı da silmez. Ayrıca, Sabit Bağlantıların aynı dosyanın birden fazla kopyasıyla aynı alanı (işletim sistemi değil) harcadığından emin değilim; Windows'a göre (Link Shell Extension ile) yaparlar. Verilmiş, bu Windows, Unix değil ...

Benim çözümüm gizli bir klasörde "ortak" bir dosya oluşturmak ve asıl kopyaları sembolik bağlarla değiştirmek ... daha sonra, sembolik bağlar yalnızca iki "dosyayı" kaydeden meta veri veya alternatif dosya akışlarıyla gömülecekti. Birinin dosya adını değiştirmek veya özel albüm resmi veya başka bir şey eklemek istemesi gibi, birbirinden farklı; aynı oyunun veya yazılımın birden fazla sürümünün kurulu olması ve en küçük farklarla bile bağımsız olarak test edilmesi gibi veritabanı uygulamalarının dışında bile faydalı olabilir.


0

En kolay yol dupeGuru özel programını kullanmaktır

dupeGuru Tercihler Ekran Görüntüsü

olarak dokümantasyon diyor

Silme Seçenekleri

Bu seçenekler, yinelenen silme işleminin nasıl yapıldığını etkiler. Çoğu zaman, hiçbirini etkinleştirmenize gerek yoktur.

Silinen dosyaları bağla:

Silinen dosyalar referans dosyasına bir link ile değiştirilir. Onu bir link link veya hard link ile değiştirme seçeneğiniz var. ... bir link, dosyanın yolunun kısayoludur. Orijinal dosya silinir veya taşınırsa, bağlantı bozulur. Bir hardlink, dosyanın kendisine bir linktir. Bu bağlantı “gerçek” bir dosya kadar iyidir. Yalnızca bir dosyaya yapılan tüm bağlantılar silindiğinde, dosyanın kendisi silinir.

OSX ve Linux'ta bu özellik tam olarak desteklenir, ancak Windows'ta biraz karmaşıktır. Windows XP desteklemiyor, ancak Vista ve üstü destekliyor. Ancak, bu özelliğin çalışması için, dupeGuru idari ayrıcalıklarla çalıştırılmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.