Linux-Tools, um doppelte Dateien zu finden?


13

Ich habe eine große und wachsende Anzahl von Textdateien, die alle recht klein sind (weniger als 100 Bytes). Ich möchte jedes mögliche Paar von Dateien und Notizen, die Duplikate sind, unterscheiden. Ich könnte ein Python-Skript schreiben, um dies zu tun, aber ich frage mich, ob es ein vorhandenes Linux-Befehlszeilentool (oder eine einfache Kombination von Tools) gibt, das dies tun würde.

Update (als Antwort auf den Kommentar von mfinni ): Die Dateien befinden sich alle in einem einzigen Verzeichnis, daher haben sie alle unterschiedliche Dateinamen. (Sie haben jedoch alle eine gemeinsame Dateinamenerweiterung, sodass Sie sie einfach mit einem Platzhalter auswählen können.)


Ich gehe davon aus, dass die Dateinamen keine Duplikate sind, nur die Inhalte?
Mfinni

pixelbeat.org/fslint Wenn Sie nach Inhalten über dem Link suchen, kann dies hilfreich sein. :)
Rajat

Antworten:


22

Da sind die Idioten . Aber ich benutze normalerweise eine Kombination vonfind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
Diese Variante hat bei mir funktioniert: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (Ich habe uniq -D verwendet und ich bevorzuge xargs, um -exec zu finden.)
Daryl Spitzer

+1 Mir war kein fdupes bekannt, dieses Tool sieht sehr nützlich aus.
Zoredache

3
@Daryl: Bei xargsDateinamen mit Leerzeichen funktioniert eine solche Verwendung nicht, bei Verwendung -execjedoch. Die Verwendung -type fals zusätzliches Argument für find(kann zusammen mit verwendet werden -name) schränkt die Suche auf Dateien ein.
Fuenfundachtzig

+1 für fdupes, da es auch für große Binärdateien schnell ist.
Bengt

In seltenen Fällen funktionierte xargs nicht (stürzt nach einer bestimmten Anzahl verarbeiteter Dateien ab), fand aber -exec nicht, das die ganze Zeit geweckt hat. @fuenfundachtzig, man kann xargs -0 --delimiter = "\ n" benutzen, um diese Art von Dateien zu handhaben.
Ychaouche


3

Sie möchten mit ziemlicher Sicherheit nicht jedes Dateipaar unterscheiden. Sie möchten wahrscheinlich so etwas wie md5sums verwenden, um alle Prüfsummen aller Dateien abzurufen und diese an ein anderes Tool weiterzuleiten, das nur doppelte Prüfsummen zurückmeldet.


2
Sie können die Anzahl der berechneten MD5-Summen reduzieren, indem Sie MD5-Summen nur für Dateien mit einer Größe berechnen, für die es mehr als eine Datei dieser Größe gibt. Für alle Dateien, die eine eindeutige Größe in Byte haben, benötigen Sie keine MD5-Summe, da sie keine Duplikate von irgendetwas sein können.
Tomsv
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.