Doppelte Dateien suchen ...
Festplatten haben das Geheimnis eingebaut, immer zu klein zu sein. Oder andersherum Daten verhalten sich wie ideale Gase, sie nutzen den zur Verfügung stehenden Platz optimal aus. Um rechtzeitig einzugreifen, habe ich gestern begonnen, unser NAS aufzuräumen.
Das Programm fdupes hat mir dabei gute Dienste erwiesen. Es durchsucht ein Verzeichnis und listet die dort enthaltenen doppelten Dateien auf, dazu vergleicht es zu erst die Grösse, dann die md5-Prüfsummen und zuletzt werden die Dateien noch Bit-für-Bit miteinander verglichen. Das dauert zwar relativ lange, ist dafür aber auch sehr zuverlässig.
Der Parameter, für das ich das Programm "liebe", ist
Durchsucht das
Das Durchsuchen von rund einem Terrabyte auf dem NAS hat gestern rund zehn Stunden gedauert und reichlich Platz gespart.
fdupes ist in nahezu jeder Linuxdistribution verfügbar.
Das Programm fdupes hat mir dabei gute Dienste erwiesen. Es durchsucht ein Verzeichnis und listet die dort enthaltenen doppelten Dateien auf, dazu vergleicht es zu erst die Grösse, dann die md5-Prüfsummen und zuletzt werden die Dateien noch Bit-für-Bit miteinander verglichen. Das dauert zwar relativ lange, ist dafür aber auch sehr zuverlässig.
Der Parameter, für das ich das Programm "liebe", ist
-L
. Damit werden Hardlinks von doppelten Dateien erstellt. Die Dateien sind dann mehrfach auf der Festplatte verfügbar, aber nur ein einziges Mal gespeichert. (Hardlinks funktionieren nur innerhalb eines Dateisystems).fdupes -rL <verzeichnis>
Durchsucht das
verzeichnis
nach doppelten Dateien und erstellt die Links. Faszinierend, was man damit an Platz sparen kann.Das Durchsuchen von rund einem Terrabyte auf dem NAS hat gestern rund zehn Stunden gedauert und reichlich Platz gespart.
fdupes ist in nahezu jeder Linuxdistribution verfügbar.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
The Compiler am :
Jedoch hat mein fdupes in Archlinux kein -L... jedoch scheint hier 1.4 in den Quellen zu sein, obwohl 1.5 schon raus ist. Gleich mal gucken, wen ich da am besten nerve, damit 1.5 auch in die Quellen kommt
Auf der anderen Seite könnt ich mir auch einfach kurz ein Skript schreiben das dasselbe macht. Hm, mal gucken was schneller geht
Dirk Deimeke am :
Seraphyn am :
ohne -L als Option.
Hatte mich schon gewundert, kannte Hardlinks unter fdupes auch noch nicht.
Dirk Deimeke am :
Das klappt echt grossartig.
Andreas Abendroth am :
Dirk Deimeke am :
Es durchsucht rekursiv alle Verzeichnisse.
Andreas Abendroth am :
Dirk Deimeke am :
Andreas Abendroth am :
Dirk Deimeke am :
The Compilerr am :
Hab jetzt nochmals nachgeforscht, auch die Option -L ist ein Debian-Patch, somit wird das mit nicht-debian-distris nicht so gehen.
Hab ausserdem noch https://github.com/sahib/rmlint gefunden, was angeblich viel schneller sein soll, allerdings per default auch keine bit-für-bit-überprüfung macht. Dafür räumt es wahlweise auch noch anderes auf.
Dirk Deimeke am :
Christian Pasold am :
Dirk Deimeke am :
Kurz:
Softlinks sind ein Verweis auf einen anderen Verzeichniseintrag, die funktionieren auch Filesystemübergreifend. Wenn Du hier die verlinkte Datei löscht, ist sie nicht mehr verfügbar.
Hardlinks Verweisen auf den gleichen inode, an dem eine Datei beginnt. Die funktionieren nur im gleichen Dateisystem. Wenn Du hier die verlinkte Datei löscht, ist sie immer noch verfügbar bis der letzte Link auch gelöscht ist.
Probiere das einmal mit einer Datei selber aus.
echo "test" > test.txt
ln test.txt link.txt
ls -l test.txt link.txt
cat test.txt
rm test.txt
cat link.txt
Sebastian hat in der August-Ausgabe von RadioTux das Prinzip ausführlich erläutert.
Christian Pasold am :
Dirk Deimeke am :
Emanuel am :
Filename, Fileattribute und MD5-Checksum/Sha-Checksum zu vergleichen sollte doch ausreichen?
Vorallem halt deswegen, weil bei Inkonsistenz der Datei doch sowieso die Checksum sich ändert? Lg
Dirk Deimeke am :
Peter Wein am :
apt-cache policy fdupes
fdupes:
Installiert: 1.51-1
Installationskandidat: 1.51-1
Versionstabelle:
*** 1.51-1 0
500 http://de.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status
Es sieht also aus, als wenn sie die Option wieder herausgenommen haben. Ich brauche die genaue Source mit revision, damit ich es versuchen kann selbst zu bauen...
Vielen Dank im Voraus!
Dirk Deimeke am :
Warof am :
Dirk Deimeke am :