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.
.tar.gz
Komprimiert 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?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.
quelle
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.
quelle