Ich suche nach einem einfachen Weg (ein Befehl oder eine Reihe von Befehlen, wahrscheinlich mit find
), um doppelte Dateien in zwei Verzeichnissen zu finden und die Dateien in einem Verzeichnis durch Hardlinks der Dateien im anderen Verzeichnis zu ersetzen.
Hier ist die Situation:Dies ist ein Dateiserver, auf dem mehrere Personen Audiodateien speichern, wobei jeder Benutzer seinen eigenen Ordner hat. Manchmal haben mehrere Personen Kopien genau derselben Audiodateien. Im Moment sind dies Duplikate. Ich möchte es so machen, dass es Hardlinks sind, um Festplattenspeicher zu sparen.
Akzeptierte Antwort:
Es gibt ein Perl-Skript unter http://cpansearch.perl.org/src/ANDK/Perl-Repository-APC-2.002/eg/trimtrees.pl, das genau das tut, was Sie wollen:
Durchsuchen Sie alle Verzeichnisse, die auf der
Befehlszeile genannt werden, berechnen Sie MD5-Prüfsummen
und finden Sie Dateien mit identischem MD5. WENN
sie gleich sind, führen Sie einen echten Vergleich durch
wenn sie wirklich gleich sind, ersetzen Sie die
zweite von zwei Dateien durch einen harten Link
zur ersten.