Es gibt mindestens vier verschiedene Jobs, die oft miteinander verwechselt werden, weil sie von gängigen Tools integriert werden:
- Archivierung: Die Möglichkeit, mehrere Dateien (einschließlich Metadaten) zu einer einzigen Datei zu kombinieren und dabei so viele Dinge wie möglich zu bewahren. In der Linux / Unix-Welt erfolgt die Archivierung traditionell im TAR-Dateiformat.
- Komprimierung: Die Möglichkeit, die Größe eines Binärdatenstroms verlustfrei zu minimieren. In der Linux / Unix-Welt wird dies traditionell von GZip und BZip2 durchgeführt.
- Verschlüsselung: Die Fähigkeit, Daten mit Schlüsseln zu verschlüsseln
- Prüfsumme: Die Fähigkeit, Fehler zu erkennen (und möglicherweise zu korrigieren).
Die Allgegenwart von .tar.gz und .tar.bz entspricht der Unix-Philosophie, dass kleine Werkzeuge einen einzigen Job gut erledigen und nur ein einziges Werkzeug, das alles erledigt. Das TAR-Dateiformat unterstützt keine Komprimierung oder Verschlüsselung, kann jedoch von jedem Komprimierer (einschließlich .tar.zip oder .tar.7z) weiter komprimiert werden. Die Aufgabe von GZip und BZip2 besteht einfach darin, einen Dateistream in einen anderen Dateistream zu komprimieren. Die Komprimierungsebene muss sich nicht darum kümmern, wie Metadaten, Verschlüsselung oder Prüfsumme erhalten bleiben. Im Laufe der Zeit wurden jedoch einige Abkürzungen im tar
Programm vorgenommen, um die Arbeit mit einem Kompressor bequemer zu gestalten.
Im zip- und 7z-Dateiformat werden diese separaten Jobs von einem einzigen Programm in einem einzigen Super-Dateiformat ausgeführt.
Warum scheint der obige Trend anzuhalten, obwohl dies alles tragbare Formate sind? Gibt es besondere Vorteile bei der Verwendung eines bestimmten Archivformats auf einer bestimmten Plattform?
Da dies so gemacht wurde, werden Programmquellcodes traditionell als .tar.gz oder .tar.bz2 verteilt, da das Beibehalten von Dateiberechtigungen, Änderungszeiten usw. für verschiedene zum Programmieren verwendete Tools (z. B. make) wichtig ist.
Der separate Archivierungs- und Komprimierungsschritt funktioniert seit Jahren sehr gut, hat den klaren Vorteil, dass Archivierung und Komprimierung frei kombiniert werden können, und sein Nachteil (ein zweistufiger Komprimierungsprozess) kann durch die Entwicklung intelligenterer Tools leicht umgangen werden ( Das modernste Linux-Komprimierungsprogramm komprimiert direkt nach .tar.gz oder .tar.bz2, wobei der Zwischenschritt ausgeblendet wird.
Es gibt keinen triftigen Grund, zu anderen Dateiformaten zu wechseln, neuere Kompressoren haben keine wesentlich bessere Kompressionsrate, um einen Bruch der Tradition zu rechtfertigen, und Teer kann alles gut genug bewahren.