Möglichkeiten zum Deduplizieren von Dateien

4316
User1

Ich möchte die Dateien einfach auf mehreren Maschinen sichern und archivieren. Leider haben die Dateien einige große Dateien, die dieselbe Datei sind, aber auf verschiedenen Computern unterschiedlich gespeichert sind. Zum Beispiel können einige hundert Fotos als Ad-hoc-Sicherung von einem Computer auf den anderen kopiert werden. Nun, da ich ein gemeinsames Repository für Dateien erstellen möchte, möchte ich nicht mehrere Kopien desselben Fotos.

Wenn ich alle diese Dateien in ein einziges Verzeichnis kopiere, gibt es ein Werkzeug, das doppelte Dateien erkennt, mir eine Liste gibt oder sogar eines der Duplikate löscht?

9
verwandt: http://unix.stackexchange.com/questions/3037/is-there-an-easy-way-to-re-place-duplicate-files-mit-hardlinks David Cary vor 13 Jahren 1

7 Antworten auf die Frage

3
bryan

Erstellen Sie eine md5sum von jeder Datei. Duplikate md5sums schlagen Duplikate vor (ohne Gewähr).

sie tun * jedoch * stark * "vorschlagen" :) und wenn die Dateien die gleiche Größe haben, ist die Wahrscheinlichkeit, dass der Vorschlag richtig ist, außergewöhnlich hoch warren vor 14 Jahren 1
2
afrazier

Sie können dupemerge verwenden, um identische Dateien in Hardlinks umzuwandeln . Bei einem großen Dateisatz dauert es jedoch sehr lange . SHA (oder MD5) -Hashes der Dateien werden mit großer Wahrscheinlichkeit schneller arbeiten, aber Sie müssen mehr Zeit darauf verwenden, die Duplikate zu finden. Die Wahrscheinlichkeit eines zufälligen Zusammenstoßes ist so gering, dass Sie sie in Wirklichkeit ignorieren können. (In der Tat machen dies bereits viele Deduplizierungsprodukte.)

Die beste Wette für den Umgang mit Fotos und Musik besteht darin, Tools zu finden, die speziell auf das Finden von Duplikaten dieser Elemente zugeschnitten sind. Zumal Sie möglicherweise keine Dateien haben, die auf binärer Ebene identisch sind, nachdem Dinge wie Markieren, Zuschneiden oder Codierungsunterschiede ins Spiel kommen. Sie benötigen Werkzeuge, die Fotos finden, die gleich aussehen, und Musik, die gleich klingt, auch wenn geringfügige Anpassungen an den Dateien vorgenommen wurden.

`hardlink` ist sehr schnell (dauerte 200 Sekunden für 1,2 MB-Dateien, 320 GB) Marcel Waldvogel vor 7 Jahren 1
1
Ryan Thompson

Wenn Sie die Möglichkeit haben, können Sie ein deduplizierendes Dateisystem einrichten und Ihre Backups darauf ablegen. Dadurch werden nicht nur ganze Dateien, sondern auch ähnliche Teile von Dateien dedupliziert. Wenn Sie z. B. dasselbe JPEG an mehreren Stellen verwenden, jedoch bei jeder Version unterschiedliche EXIF-Tags, würde ein Deduplizierungsdateisystem die Bilddaten nur einmal speichern.

Deduplizierende Dateisysteme umfassen lessfs, ZFS und SDFS.

Ich kann nicht über Deduplizierung bei SDFS oder lessfs sprechen, aber Deduplizierung bei ZFS funktioniert nicht so. Es wird auf Blockebene geprüft, sodass identische Dateien wahrscheinlich für die Deduplizierung markiert werden, Dateien mit einem anderen Header jedoch nicht. Darüber hinaus können Dateien, die kleiner als Ihre ZFS-Datensatzgröße sind (der Standardwert beträgt 128 KB), in einem einzigen Block zusammengefasst werden, sodass sie möglicherweise auch nicht von der Deduplizierung profitieren. notpeter vor 10 Jahren 2
Dedupliziertes Dateisystem (zfs oder btrfs) spart nur Speicherplatz auf dem Sicherungshost. Es speichert nicht die Menge der übertragenen Daten. Es ist eine Idee, einige Hashwerte für Dateien zu berechnen und an den Sicherungs-Host zu senden. Wenn es "Ich habe es" sagt, ist die Sicherung für diese Datei abgeschlossen. Dies ist in einer sehr teuren (Geld) Backup-Software implementiert. Ich habe noch nie von Open Source gehört. Aber vielleicht wird es jetzt umgesetzt, wer weiß :) Znik vor 10 Jahren 0
@Znik `rsync --link-dest` ist Ihr Freund, wenn Sie auch beim Lesen / Übertragen sparen möchten. Eine einfache Einführung finden Sie hier: https://netfuture.ch/2013/08/simple-versioned-timemachine-like-backup-using-rsync/ Marcel Waldvogel vor 7 Jahren 0
Es funktioniert, indem Inodes einer Datei zugewiesen werden. Wenn die Deduplizierung jedoch ausgeblendet ist, beispielsweise im squashfs-Dateisystem, kann rsync dies nicht überprüfen und wird die gleichen Daten viele Male übertragen. Znik vor 7 Jahren 0
0
digitxp

Als ich so etwas tat, lernte ich, dass es viel ansprechender / zeiteffizienter ist, die Akten in Ihrer Freizeit im Laufe einiger Wochen zu durchsuchen. Sie können den Unterschied zwischen den Dingen besser als Ihr Computer erkennen.

Wenn Sie nicht einverstanden sind, empfehle ich EasyDuplicateFinder . Wie ich oben bereits erwähnt habe, dauert es etwa 5 Tage, ungefähr 5 Tage.

Crashplan macht auch das, was Sie zuvor gemacht haben, jedoch in einem viel organisierteren, nicht-versionierenden Problem.

0
warren

Eine andere Möglichkeit, vorausgesetzt, die von Ihnen unterstützten Maschinen werden es unterstützen, ist die Verwendung von etwas wie rsync.

Wenn Sie rsyncvon A nach B, dann von C nach B, dann von D nach B usw. wechseln, werden exakte Duplikate (dh nach Dateiname) eliminiert (und zwischen den zu sichernden Maschinen synchronisiert).

Wenn Sie nicht möchten, dass sie alle miteinander synchronisiert werden, ist dies nicht der beste Weg.

0
cweiske

Verwenden Sie für Bilddateien findimagedupes . Es ist auch in Debian verpackt .

findimagedupes ist für Fotos oder Grafiken, die möglicherweise von einem Format in ein anderes konvertiert werden. Fotos (ich zu Hause) ist nur ein Beispiel in Frage. Es können auch andere große Dateien sein. Znik vor 10 Jahren 0
0
Marcel Waldvogel

Hardlinks führen nur dann Deduplizierung durch, wenn die gesamte Datei identisch ist. Wenn Kopfzeilen (EXIF, ID3,…) oder Metadaten (Eigentümer) unterschiedlich sind, werden sie nicht verknüpft.

Wenn Sie die Möglichkeit haben, ein Dateisystem mit Block-Deduplizierungsunterstützung (ZFS, btrfs usw.) zu verwenden, verwenden Sie dies stattdessen. Ich bin sehr angetan von der Offline- (aka- Stapel- ) Dedup-Unterstützung von btrfs, die Deduplizierung auf Umfangsebene unterstützt und nicht ständig große Mengen an Speicher verbraucht (wie ZFS-Online-Dedup).

Die Deduplizierung hat auch den Vorteil, dass Dateien vom Benutzer geändert werden können, ohne dass die andere Kopie bemerkt wird (was in Ihrem Fall möglicherweise nicht anwendbar ist, aber in anderen Fällen).

Unter https://btrfs.wiki.kernel.org/index.php/Deduplication finden Sie eine hervorragende Diskussion.