So finden (und löschen) Sie doppelte Dateien

125

Ich habe eine große Musiksammlung und es gibt einige Duplikate darin. Gibt es eine Möglichkeit, doppelte Dateien zu finden. Zumindest, indem Sie einen Hash ausführen und prüfen, ob zwei Dateien denselben Hash haben.

Bonuspunkte für das Finden von Dateien mit demselben Namen, abgesehen von der Erweiterung - ich glaube, ich habe einige Songs sowohl im MP3- als auch im Ogg-Format.

Ich benutze gerne die Kommandozeile, wenn das der einfachste Weg ist.

Hamish Downer
quelle

Antworten:

138

Ich benutze fdupesdafür. Es ist ein Kommandozeilenprogramm, das von den Repositories mit installiert werden kann sudo apt install fdupes. Sie können es so nennen fdupes -r /dir/ect/oryund es wird eine Liste von Dupes ausgedruckt. fdupes hat auch eine einfache Homepage und einen Wikipedia-Artikel , der einige weitere Programme auflistet.

qbi
quelle
7
Es gibt auch die Option "-d", mit der Sie auswählen können, welche Kopie Sie behalten möchten, und die anderen löschen können (oder Sie können alle behalten, wenn Sie möchten).
Matthew Crumley
Wie kann ich die Option -d verwenden, um mein Problem hier
John McKean Pruitt
Ist es für fdupes möglich, doppelte Ordner anstelle von doppelten Dateien aufzulisten?
Anderson Green
2
Können Sie genauer erläutern, wie Sie alle Duplikate in einem rekursiven Verzeichnisbaum löschen (wobei für jede Datei nur eine einzige Kopie übrig bleibt)? Ich möchte dies automatisch tun, das heißt, ohne jedes Mal angeben zu müssen, welche Datei aufbewahrt werden soll. Es sollte nur eines der Duplikate auswählen.
Becko
5
fdupes -r . -d -Nsollte die erste Instanz speichern und die Dupes löschen. Ich habe gerade erfolgreich einen einzelnen Ordner mit fdupes . -d -Nnicht rekursiv gelöscht
Simon B
61

FSlint hat eine GUI und einige andere Funktionen. Die Erklärung des Duplikatprüfungsalgorithmus aus deren FAQ:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint Installieren Sie fslint

Dominik
quelle
12
Vielen Dank. Beachten Sie, dass der Befehlsname "fslint-gui" lautet und die Befehlszeilentools standardmäßig nicht in $ PATH enthalten sind - sie befinden sich in / usr / share / fslint / fslint. Ich war verwirrt, als ich durch einfaches Ausführen von fslint (über / usr / lib / command-not-found) keine Hilfe zu dem Paket erhielt, in dem es sich befand.
Nealmcb
genau das, was nötig ist
Tebe
1
@nealmcb Wenn verwendet sudo apt-get install fslint, wird die Installation derzeit fslint-guiin den Pfad eingefügt , sodass ich sie von überall aus ausführen kann, indem ich nur tippe fslint-gui. Sie können finden, wo fslint-guilebt, indem Sie eingeben which fslint-gui(es sieht aus wie ein Python-Skript).
user29020
55

Liste von programs/scripts/bash-solutions, die Duplikate finden und ausführen können unter nix:

  1. dupedit : Vergleicht viele Dateien gleichzeitig ohne Prüfsumme. Vermeidet den Vergleich von Dateien mit sich selbst, wenn mehrere Pfade auf dieselbe Datei verweisen.
  2. dupmerge : läuft auf verschiedenen Plattformen (Win32 / 64 mit Cygwin, * nix, Linux etc.)
  3. dupseek : Perl mit Algorithmus zur Reduzierung von Lesezugriffen .
  4. fdf : Perl / c basiert und läuft auf den meisten Plattformen (Win32, * nix und wahrscheinlich auch anderen). Verwendet MD5, SHA1 und andere Prüfsummenalgorithmen
  5. freedups : Shell-Skript, das die von Ihnen angegebenen Verzeichnisse durchsucht. Wenn zwei identische Dateien gefunden werden, werden diese hart miteinander verknüpft. Jetzt sind die zwei oder mehr Dateien noch in ihren jeweiligen Verzeichnissen vorhanden, aber nur eine Kopie der Daten wird auf der Festplatte gespeichert. Beide Verzeichniseinträge verweisen auf dieselben Datenblöcke.
  6. fslint : verfügt über eine Befehlszeilenschnittstelle und eine grafische Benutzeroberfläche.
  7. liten : Reines Python-Deduplizierungs-Befehlszeilentool und Bibliothek mit md5-Prüfsummen und einem neuartigen Bytevergleichsalgorithmus. (Linux, Mac OS X, * nix, Windows)
  8. liten2 : Ein Rewrite des ursprünglichen Liten, immer noch ein Befehlszeilentool, aber mit einem schnelleren interaktiven Modus unter Verwendung von SHA-1-Prüfsummen (Linux, Mac OS X, * nix)
  9. rdfind : Eine der wenigen, die Duplikate anhand der Reihenfolge der Eingabeparameter (zu durchsuchende Verzeichnisse) einstufen, um sie nicht in "ursprünglichen / bekannten" Quellen zu löschen (wenn mehrere Verzeichnisse angegeben sind). Verwendet MD5 oder SHA1.
  10. rmlint : Schneller Finder mit Kommandozeilenschnittstelle und vielen Optionen, um auch andere Flusen zu finden (verwendet MD5)
  11. ua : Unix / Linux-Befehlszeilentool, das für die Verwendung mit find (und dergleichen) entwickelt wurde.
  12. findrepe : kostenloses Java-basiertes Befehlszeilentool, das für die effiziente Suche nach doppelten Dateien entwickelt wurde und in Zip- und JAR -Dateien durchsucht werden kann (GNU / Linux, Mac OS X, * nix, Windows).
  13. fdupe : ein kleines Skript in Perl. Schnell und effizient arbeiten. 1
  14. ssdeep : Identifizieren Sie nahezu identische Dateien mithilfe von stückweisem Hashing, das durch Kontext ausgelöst wird
v2r
quelle
4
Kann eines dieser Programme doppelte Ordner finden (nicht nur doppelte Dateien?)
Anderson Green
3
@AndersonGreen rmlintkann doppelte Verzeichnisse finden. rmlint -T dd
Oligofren
Für Ubuntu besteht eine andere Möglichkeit darin, Dateien zu öffnen, nach einer bestimmten Erweiterung (z. B. MP3) zu suchen (Strg-F) und dann nach dem Dateinamen zu sortieren. Auf diese Weise können Sie Duplikate manuell löschen und gleichzeitig die Positionen der Duplikate anzeigen.
Axd
6

Wenn Ihre Deduplizierungsaufgabe musikbezogen ist, führen Sie zuerst die picard- Anwendung aus, um Ihre Musik korrekt zu identifizieren und zu kennzeichnen (sodass Sie doppelte MP3- / OGG-Dateien finden, auch wenn ihre Namen falsch sind). Beachten Sie, dass picard auch als Ubuntu-Paket erhältlich ist.

Anhand des musicip_puidTags können Sie alle Ihre doppelten Songs leicht finden.

ΤΖΩΤΖΙΟΥ
quelle
4

Ein anderes Skript, das diesen Job ausführt, ist rmdupe . Von der Autorenseite:

rmdupe verwendet Standard-Linux-Befehle, um in angegebenen Ordnern nach doppelten Dateien zu suchen, unabhängig von Dateiname oder Erweiterung. Bevor doppelte Kandidaten entfernt werden, werden sie Byte für Byte verglichen. rmdupe kann auch Duplikate anhand eines oder mehrerer Referenzordner überprüfen, Dateien in den Papierkorb verschieben, anstatt sie zu entfernen, einen benutzerdefinierten Entfernungsbefehl zulassen und die Suche auf Dateien der angegebenen Größe beschränken. rmdupe enthält einen Simulationsmodus, der angibt, was für einen bestimmten Befehl ausgeführt wird, ohne dass Dateien tatsächlich entfernt werden.

girardengo
quelle
3

Hast du es versucht

finddup

oder

finddup -l

Ich denke, es funktioniert gut.

Xerostomus
quelle
2

Für musikbezogene doppelte Identifizierung und Löschung sind Picard und Jaikoz von http://musicbrainz.org/ die beste Lösung. Jaikoz Ich glaube, Ihre Musik wird automatisch anhand der Daten der Songdatei markiert. Sie brauchen nicht einmal den Namen des Songs, um den Song zu identifizieren und ihm alle Metadaten zuzuweisen. Die kostenlose Version kann zwar nur eine begrenzte Anzahl von Songs in einem Durchgang markieren, Sie können sie jedoch so oft ausführen, wie Sie möchten.

Yathi
quelle
2

Ich benutze komparator - sudo apt-get install komparator( Ubuntu 10.04+ ) - als GUI-Tool für die Duplikate im manuellen Modus zu finden.

Nrrbert
quelle