Ist es möglich, doppelte Dateien auf meiner Festplatte zu finden, die Bit für Bit identisch sind, aber unterschiedliche Dateinamen haben?
files
duplicate-files
Student
quelle
quelle
st_size
s suchen, diejenigen mit nur einem der gleichen entfernen und dann nur md5sums für passendest_size
s berechnen .Antworten:
fdupes
kann dies tun. Vonman fdupes
:In Debian oder Ubuntu können Sie es mit installieren
apt-get install fdupes
. In Fedora / Red Hat / CentOS können Sie es mit installierenyum install fdupes
. Unter Arch Linux können Siepacman -S fdupes
und unter Gentooemerge fdupes
.Verwenden Sie zum Ausführen einer Überprüfung, die von Ihrem Dateisystemstamm abstammt und wahrscheinlich viel Zeit und Speicher benötigt, Folgendes
fdupes -r /
:Wie in den Kommentaren angefordert, können Sie die größten Duplikate erhalten, indem Sie folgendermaßen vorgehen:
Dies wird unterbrochen, wenn Ihre Dateinamen Zeilenumbrüche enthalten.
quelle
fdupes ....... | xargs ls -alhd | egrep 'M |G '
Dateien im vom Menschen lesbaren Format und nur solche mit einer Größe in Megabyte oder Gigabyte. Ändern Sie den Befehl entsprechend den tatsächlichen Ausgaben.du
Pipeline darauf hingewiesensort
.Ein weiteres gutes Werkzeug ist
fslint
:Auf Debian-basierten Systemen können Sie es installieren mit:
Sie können dies auch manuell tun, wenn Sie Tools von Drittanbietern nicht installieren möchten oder können. Die meisten dieser Programme arbeiten mit der Berechnung von Dateiprüfsummen . Dateien mit derselben MD5-Summe enthalten mit ziemlicher Sicherheit genau dieselben Daten. Sie könnten also so etwas tun:
Beispielausgabe (die Dateinamen in diesem Beispiel sind identisch, funktionieren jedoch auch, wenn sie unterschiedlich sind):
Dies ist viel langsamer als die bereits erwähnten dedizierten Tools, funktioniert jedoch.
quelle
st_size
, alle zu entfernen, die nur eine Datei dieser Größe haben, und dann md5-Summen nur zwischen Dateien mit derselben Größe zu berechnenst_size
.Kurze Antwort: ja.
Längere Version: Schauen Sie sich den Wikipedia- Eintrag fdupes an , er enthält eine schöne Liste fertiger Lösungen. Natürlich können Sie Ihre eigenen schreiben, es ist nicht , dass schwer - Hashing - Programme wie
diff
,sha*sum
,find
,sort
unduniq
die Arbeit machen sollte. Sie können es sogar in eine Zeile setzen, und es wird immer noch verständlich sein.quelle
Wenn Sie glauben, dass eine Hash-Funktion (hier MD5) in Ihrer Domain kollisionsfrei ist:
Möchten Sie identische Dateinamen gruppieren? Schreiben Sie ein einfaches Skript,
not_uniq.sh
um die Ausgabe zu formatieren:Dann ändern Sie den
find
Befehl, um Ihr Skript zu verwenden:Das ist die Grundidee. Wahrscheinlich sollten Sie ändern,
find
wenn Ihre Dateinamen einige Zeichen enthalten. (zB Leerzeichen)quelle
Ich habe mir überlegt, eine neue, verbesserte FDUPE- Gruppe , jdupes, hinzuzufügen , die verspricht, schneller und funktionsreicher zu sein als fdupes (z. B. Größenfilter):
Dies findet rekursiv duplizierte Dateien, die größer als 50 MB sind, im aktuellen Verzeichnis und gibt die Ergebnisliste in myjdups.txt aus.
Beachten Sie, dass die Ausgabe nicht nach Größe sortiert ist. Da sie offenbar nicht integriert ist, habe ich die @ Chris_Down-Antwort oben angepasst, um dies zu erreichen:
quelle
Wikipedia hatte einen Artikel ( http://en.wikipedia.org/wiki/List_of_duplicate_file_finders ) mit einer Liste verfügbarer Open-Source-Software für diese Aufgabe, der jetzt jedoch gelöscht wurde .
Ich werde hinzufügen, dass die GUI-Version von fslint sehr interessant ist und es erlaubt, mithilfe der Maske auszuwählen, welche Dateien gelöscht werden sollen. Sehr nützlich, um doppelte Fotos zu säubern.
Unter Linux können Sie Folgendes verwenden:
Die 2 letzten Arbeiten auf vielen Systemen (Windows, Mac und Linux) habe ich nicht auf FSLint überprüft
quelle
Hier ist meine Meinung dazu:
Der Unterschied besteht darin, dass nur die ersten 1 MB der Datei gehasht werden.
Dies hat einige Probleme / Funktionen:
Ich benutze es, um Videoclips zu vergleichen, das reicht mir also.
quelle