Wie kann ich doppelte Dateien über separate Verzeichnisbäume entfernen?

10

Ich habe zwei Verzeichnisse: old/und new/. Einige der Dateien in old/sind Duplikate der Dateien in new/. Einige haben lediglich den gleichen Namen, und einige haben möglicherweise sogar identischen Inhalt, aber unterschiedliche Namen. Der Unterverzeichnispfad zu den Dateien interessiert mich nicht, daher muss beim Abgleich nur ein nicht qualifizierter Dateiname berücksichtigt werden.

Ich möchte die doppelten Dateien entfernen old/, damit sie nur Dateien enthalten, die nicht auch in gefunden wurden new/. In Fällen, in denen die Dateinamen übereinstimmen, aber nicht der Inhalt oder umgekehrt, möchte ich, dass dies in einem Protokoll aufgeführt wird.

Hat jemand ein ähnliches Problem festgestellt oder eine bessere Lösung gefunden, als ein (Perl- oder ähnliches) Skript von Grund auf neu zu hacken? Eine Laufzeit, die durch das Aufrufen md5sumjeder Datei dominiert wird, ist akzeptabel.

P-Muttern
quelle

Antworten:

7

Natürlich! Schauen Sie sich FSlint an :

FSlint ist ein Dienstprogramm zum Suchen und Reinigen verschiedener Formen von Flusen in einem Dateisystem. IE unerwünschte oder problematische Cruft in Ihren Dateien oder Dateinamen. Eine Form von Flusen, die es findet, sind beispielsweise doppelte Dateien. Es hat sowohl GUI- als auch Befehlszeilenmodus.

Alt-Text

FSlint ist freie und Open Source Software.

John T.
quelle
Das sieht nah genug für das aus, was ich will. Vielen Dank!
P-Nuts
8

fdupes - findet doppelte Dateien in einem bestimmten Satz von Verzeichnissen

fdupes new/ old/

-d zum Löschen

-N für nicht fragen

fdupes -N -d new/ old/
Cristian Ciupitu
quelle
Wird dies nicht auch Duplikate in jedem Verzeichnis finden (und löschen)? Mit anderen Worten, wenn neu (oder alt) doppelte Dateien enthält, die möglicherweise in alten gefunden werden oder nicht, werden diese ebenfalls gelöscht? Ich denke nicht, dass fdupes ein streng abweichendes Programm ist, wie es Ihre Argumente "neu" und "alt" implizieren.
Stephen Niedzielski