Ich habe eine große Musiksammlung auf meiner Festplatte gespeichert. Beim Durchsuchen stellte ich fest, dass ich in einigen Albumverzeichnissen viele doppelte Dateien habe. Normalerweise befinden sich die Duplikate neben dem Original im selben Verzeichnis.
Normalerweise lautet das Format Dateiname.mp3 und die doppelte Datei Dateiname 1.mp3 . Manchmal kann es mehr als eine doppelte Datei geben, und ich habe keine Ahnung, ob es doppelte Dateien in Ordnern gibt (zum Beispiel Duplikate von Albumverzeichnissen).
Kann ich auf irgendeine Weise nach diesen doppelten Dateien suchen (z. B. durch Vergleichen der Dateigröße oder Vergleichen der gesamten Dateien, um zu überprüfen, ob sie identisch sind), die Ergebnisse überprüfen und dann die doppelten Dateien löschen? Diejenigen, die einen längeren Namen haben, oder diejenigen, die ein neueres Änderungs- / Erstellungsdatum haben, sind normalerweise die Ziele des Löschens.
Gibt es ein Programm, das dies unter Linux kann?
quelle
Antworten:
Es gibt ein solches Programm und es heißt
rdfind
:Es kann die Duplikate löschen oder durch symbolische oder feste Links ersetzen.
quelle
Hmmph. Ich habe gerade einen Einzeiler entwickelt, um alle Duplikate aufzulisten, für eine Frage, die sich als Duplikat herausstellte. Wie meta. Schade, es zu verschwenden, also werde ich es veröffentlichen, obwohl es sich
rdfind
nach einer besseren Lösung anhört.Dies hat zumindest den Vorteil, dass es die "echte" Unix-Methode ist;)
Unterbrechung der Pipeline:
find -name '*.mp3' -print0
Findet alle MP3-Dateien im Teilbaum ab dem aktuellen Verzeichnis und druckt die Namen NUL-getrennt.xargs -0 md5sum
liest die durch NUL getrennte Liste und berechnet für jede Datei eine Prüfsumme.Sie wissen was
sort
tut.uniq -Dw 32
vergleicht die ersten 32 Zeichen der sortierten Zeilen und druckt nur diejenigen, die denselben Hash haben.So erhalten Sie eine Liste aller Duplikate. Sie können dies dann manuell auf diejenigen reduzieren, die Sie löschen möchten, die Hashes entfernen und die Liste an weiterleiten
rm
.quelle
rdfind
die besser sind, ist, zuerst die Dateigröße zu überprüfen, um eindeutige Dateien von der Liste auszuschließenIch bin froh, dass du den Job erledigt hast
rdfind
.Das nächste Mal könnten Sie auch überlegen
rmlint
. Es ist extrem schnell und bietet verschiedene Optionen , um festzustellen, welche Datei das Original in jedem Satz von Duplikaten ist.quelle
Ich würde darüber nachdenken, Perl zu verwenden:
quelle