Ich habe eine Reihe von Backups (manuell erstellt), die doppelte Informationen enthalten. Gibt es ein Programm/Skript/einen Befehl, um die Verzeichnisstruktur zu durchlaufen, doppelte Dateien über MD5-Hashes zu identifizieren und dann eine der Dateien zu entfernen?
Beide Windows-/Linux-Lösungen funktionieren.
Antwort1
Persönlich benutze ichrdfinddafür. Wie auf der verlinkten Seite erwähnt, gibt es jede Menge anderer Tools dafür und ich habe die meisten davon ausprobiert, aber rdfind hat die Optimierung, zuerst die ersten und letzten Bytes jeder Datei zu scannen und die MD5-Summe nur zu berechnen, wenn diese identisch sind, was dies bei meinen Backups viel schneller macht als alles andere, was ich ausprobiert habe.
Für die von Ihnen gewünschte Nutzung benötigen Sie
rdfind --deleteduplicates backup_a backup_b
Ich würde jedoch empfehlen, es mit der Option -makehardlinks auszuführen. Dadurch werden die doppelten Dateien durch Hardlinks ersetzt (vorausgesetzt, Sie speichern die Daten auf einem vernünftigen Dateisystem), sodass jedes Backup so aussieht wie jetzt, doppelte Daten jedoch nur einmal gespeichert werden.