Solide Kompression

Ein tar.gz wird erstellt, indem Sie den Dateien in TAR verbinden und dann mit GZIP komprimieren.

Im Computer, solide Kompression ist eine Methode für Datenkompression von mehreren Dateien, bei denen alle unkomprimierten Dateien verkettet und als einzelner Datenblock behandelt werden. Ein solches Archiv wird als solides Archiv bezeichnet. Es wird nativ in der verwendet 7z[1] und Rar[2] Formate sowie indirekt in Teer-basierte Formate wie z. .Teer.gz und .Teer.BZ2. Dagegen die ZIP -Format ist nicht solide, da es separat komprimierte Dateien speichert (obwohl eine solide Komprimierung für kleine Archive emuliert werden kann, indem die Dateien in eine unkomprimierte Archivdatei kombiniert und diese Archivdatei in einer zweiten komprimierten Zip -Datei komprimiert werden).[3][4]

Erläuterung

Komprimierte Dateiformate enthalten häufig sowohl Komprimierung (Speichern der Daten im kleinen Raum) als auch Archivierung (Speichern Sie mehrere Dateien und Metadaten in einer einzelnen Datei). Man kann diese auf zwei natürliche Arten kombinieren:

  • Komprimieren Sie die einzelnen Dateien und archivieren Sie dann in eine einzige Datei.
  • Archivieren Sie in einen einzelnen Datenblock und komprimieren Sie sie dann.

Die Bestellung ist wichtig (diese Operationen nicht pendeln) und letzteres ist eine feste Kompression.

In Unix sind Komprimierung und Archivierung traditionell getrennte Operationen, die es ermöglicht, diese Unterscheidung zu verstehen:

  • Komprimieren einzelner Dateien und dann Archivierung wäre a Teer von gzip-komprimierte Dateien -Dies ist sehr ungewöhnlich.
  • Archivieren verschiedener unkomprimierter Dateien über Teer und dann Die Komprimierung ergibt ein komprimiertes Archiv: a .tar.gz Datei - Dies ist eine solide Komprimierung.
Eine grobe grafische Darstellung

In diesem Beispiel haben drei Dateien jeweils einen gemeinsamen Teil mit denselben Informationen, einen eindeutigen Teil mit Informationen, die nicht in den anderen Dateien sind, und einen "Luft" -Teil mit niedriger Entropie und dementsprechend gut komprimierbare Informationen.

Originaldatei a

gemeinsames einzigartig Luft

Originaldatei b

gemeinsames einzigartig Luft

Originaldatei c

gemeinsames einzigartig Luft

Nicht solide Archiv:

gemeinsames A   gemeinsames B   gemeinsames C  

solides Archiv:

gemeinsames A B C  

Begründung

Vorteile

Solide Komprimierung ermöglicht viel bessere Komprimierungsraten, wenn alle Dateien ähnlich sind, was häufig der Fall ist, wenn sie von gleich sind Datei Format. Es kann auch bei der Archivierung einer großen Anzahl kleiner Dateien effizient sein.

Kosten

Auf der anderen Seite muss eine einzige Datei aus einem soliden Archiv herausgegriffen werden, um alle Dateien zu verarbeiten, sodass das Ändern solider Archive langsam und unpraktisch sein kann. Auf neueren Formaten wie 7-Zip gibt es a Feste Blockgröße Option, mit der der verkettete Datenblock in einzeln komprimierte kleinere Blöcke aufgeteilt werden kann, so dass nur eine begrenzte Menge an Daten im Block verarbeitet werden muss, um eine Datei zu extrahieren. Die Parameter steuern die maximale Fenstergröße für solide Block, die Anzahl der Dateien in einem Block und die Frage, ob Blöcke durch Dateierweiterung getrennt sind.[5]

Wenn das Archiv noch leicht beschädigt wird, können einige Daten (manchmal sogar alle Daten) nach dem beschädigten Teil des Blocks (abhängig von der Kompressions- und Archivierungsformat) unbrauchbar sein, während in einem nicht-soliden Archivformat normalerweise, normalerweise Nur eine Datei ist unbrauchbar und die nachfolgenden Dateien können normalerweise noch extrahiert werden.

Verweise

  1. ^ "7za Man Page". Archiviert von das Original Am 2010-01-10. Abgerufen 2010-01-24. -ms = auf [:] solides Archiv auf
  2. ^ "RAR stellte häufig Fragen (FAQ)". 1994-08-15. Abgerufen 2010-01-24.
  3. ^ "CAFXXCROSSWAY - Emulieren Sie feste Archivierung mit Reißverschluss". cafxx.strayorange.com.
  4. ^ "Reißverschluss und solide Archive". PC -Bewertung. 2006-03-15.
  5. ^ "Geschichte des 7-Zip". www.7-zip.org. Abgerufen 2019-09-09.