Gibt es ein Komprimierungs- oder Archivierungsprogramm für Windows, das auch die Deduplizierung ausführt? [geschlossen]

12

Ich suche ein Archivierungsprogramm, das Deduplizierung (Dedupe) für die zu archivierenden Dateien durchführen kann. Beim Entpacken des Archivs stellte die Software alle Dateien wieder her, die während des Komprimierungsprozesses entfernt wurden.

Bisher habe ich gefunden:

Kennt jemand andere?

Dies wäre wahrscheinlich eine großartige Ergänzung zu 7-zip.

Larry Silverman
quelle

Antworten:

12

Fast alle modernen Archivierer tun genau das. Der einzige Unterschied besteht darin, dass sie von einem "soliden" Archiv sprechen, da alle Dateien zu einem einzigen Stream zusammengefügt werden, bevor sie dem Komprimierungsalgorithmus zugeführt werden. Dies unterscheidet sich von der standardmäßigen Zip-Komprimierung, bei der jede Datei einzeln komprimiert und jede komprimierte Datei zum Archiv hinzugefügt wird.

7-zip bewirkt von Natur aus eine effektive Deduplizierung. 7-Zip sucht zum Beispiel nach Dateien, sortiert sie nach ähnlichen Dateitypen und Dateinamen, und so werden zwei Dateien desselben Typs und Daten nebeneinander im Stream platziert, der zu den Kompressoralgorithmen geleitet wird. Der Kompressor wird dann eine Menge Daten sehen, die er in letzter Zeit gesehen hat, und diese beiden Dateien werden eine große Steigerung der Komprimierungseffizienz erfahren, verglichen mit dem Komprimieren der Dateien nacheinander.

Linux hat seit langem ein ähnliches Verhalten durch die Verbreitung des ".tgz" -Formats (oder ".tar.gz", um die vollständige Form zu verwenden) festgestellt, da das tar einfach alle Dateien zu einem einzigen Stream zusammenführt (wenn auch ohne Dateien sortieren und gruppieren) und dann mit gzip komprimieren. Was dies vermisst, ist die Sortierung, die 7-zip vornimmt, was zwar die Effizienz etwas verringert, aber immer noch viel besser ist, als einfach eine Menge einzeln komprimierter Dateien auf die Art und Weise zu blobben , die Zip macht.

Mokubai
quelle
lerne jeden Tag etwas Neues. Ich habe nicht bemerkt, dass zip jede Datei einzeln komprimiert, aber nach ein paar Tests auf meinem Computer habe ich festgestellt, dass Sie in der Tat richtig sind. sehr interessant, danke!
CenterOrbit
7ip leistet einen fairen Beitrag zur Deduplizierung, ist jedoch auch so konzipiert, dass nicht doppelte Daten effizient komprimiert werden. Um dies zu erreichen, wird viel CPU und Speicher benötigt, was die Deduplizierung von Daten zu einer sehr ineffizienten Methode macht. Wenn Sie zwei identische 100-MB-Dateien komprimieren, ist es sehr mühsam, die erste Datei effizient zu komprimieren. Erst dann (wenn das Wörterbuch groß genug ist) wird die zweite Datei als Duplikat der ersten komprimiert.
Mwfearnley
.tar.gzKomprimiert gzip nicht nur relativ kleine Blöcke (wie 900 KB) gleichzeitig völlig unabhängig voneinander und kann somit nicht zwei große, aber identische Dateien (z. B. ein paar 4 MB große Bilder) deduplizieren?
binki
7z konnte beispielsweise zwischen großen Dateien eine Deduplizierung durchführen, gzip jedoch nicht: gist.github.com/binki/4cf98fb4f1f4aa98ee4a00edaf6048fa
binki
4

Es hat keinen Sinn, die Deduplizierung mit einem Komprimierungsprozess zu verwenden. Die meisten Komprimierungsalgorithmen erstellen ein sogenanntes "Wörterbuch", das nach den häufigsten oder wiederverwendeten Datenbits sucht. Von dort wird nur auf den Wörterbucheintrag verwiesen, anstatt das ganze "Wort" erneut zu schreiben. Auf diese Weise schneiden die meisten Komprimierungsprozesse bereits redundante oder doppelte Daten aus allen Dateien aus.

Wenn Sie beispielsweise eine 1-MB-Datei nehmen und jeweils 100-mal mit einem anderen Namen kopieren (insgesamt 100 MB Speicherplatz), komprimieren Sie sie in einer 7-Zip- oder Zip-Datei. Sie erhalten eine 1-MB-Zip-Datei. Dies liegt daran, dass alle Ihre Daten in einem Wörterbucheintrag abgelegt wurden und 100-mal referenziert wurden, was sehr wenig Platz einnimmt.

Dies ist eine sehr einfache Erklärung dessen, was passiert, aber der Punkt wird immer noch gut vermittelt.

CenterOrbit
quelle
1
Da die Größe des Wörterbuchs für die meisten Komprimierungsarchive sehr begrenzt ist, gilt dies nicht für den täglichen Gebrauch. Versuchen Sie dies mit 50MB Dateien und Ihre komprimierte Größe verdoppelt sich mit zwei identischen Eingabedateien.
Chaos_99
1
Im Gegensatz zu 7zip-Dateien unterstützen ZIP-Dateien die Deduplizierung zwischen Dateien nicht. Zip-Dateien komprimieren und speichern jede Datei separat, sodass doppelte Dateien einfach mehrmals im Archiv gespeichert werden.
Mwfearnley
1
Während 7zip die Deduplizierung zwischen Dateien unterstützt, wurde es entwickelt, um viel kürzere Übereinstimmungen zu finden und zu komprimieren. Seine Algorithmen sind viel langsamer und speicherintensiver als das, was möglicherweise für etwas möglich ist, das zum Auffinden von Duplikaten in großem Maßstab entwickelt wurde.
Mwfearnley
4

7-Zip, zip, gzip und alle anderen Archivierungsprogramme erkennen nicht identische Bereiche, die weit voneinander entfernt sind, z. B. nur wenige Megabyte oder mehr, in derselben Datei oder an unterschiedlichen Positionen in unterschiedlichen Dateien.

Nein, normale Archivierer arbeiten in einigen Situationen nicht so gut wie exdupe und andere. Sie können dies sehen, wenn Sie einige virtuelle Maschinen oder andere Dinge komprimieren.

Ian
quelle
1
Das ist richtig. Sobald das eindeutige Datenvolumen die Größe des Komprimierungswörterbuchs überschreitet, geht die Komprimierung den Bach runter. exdupe bietet überlegene Leistung für große Datenmengen.
USR