Was ist der Vorteil der Verwendung des Tar-Dateiformats heute?

Inhaltsverzeichnis:

Video: Was ist der Vorteil der Verwendung des Tar-Dateiformats heute?

Video: Was ist der Vorteil der Verwendung des Tar-Dateiformats heute?
Video: PowerShell For Beginners Full Course | PowerShell Beginner tutorial Full Course 2024, März
Was ist der Vorteil der Verwendung des Tar-Dateiformats heute?
Was ist der Vorteil der Verwendung des Tar-Dateiformats heute?
Anonim
 Das Archivierungsformat für Teer ist in den Rechenjahren eine echte Methuselah, wird aber auch heute noch häufig verwendet. Was macht das Teerformat so lange nach seiner Einführung so nützlich?
Das Archivierungsformat für Teer ist in den Rechenjahren eine echte Methuselah, wird aber auch heute noch häufig verwendet. Was macht das Teerformat so lange nach seiner Einführung so nützlich?

Die heutige Question & Answer-Sitzung wird von SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.

Die Frage

Der Superuser-Leser MarcusJ ist neugierig auf das Teerformat und warum wir es nach all den Jahren immer noch verwenden:

I know that tar was made for tape archives back in the day, but today we have archive file formats that both aggregate files and perform compression within the same logical file format.

Questions:

  • Is there a performance penalty during the aggregation/compression/decompression stages for using tar encapsulated in gzip or bzip2, when compared to using a file format that does aggregation and compression in the same data structure? Assume the runtime of the compressor being compared is identical (e.g. gzip and Deflate are similar).
  • Are there features of the tar file format that other file formats, such as.7z and.zip do not have?
  • Since tar is such an old file format, and newer file formats exist today, why is tar (whether encapsulated in gzip, bzip2 or even the new xz) still so widely used today on GNU/Linux, Android, BSD, and other such UNIX operating systems, for file transfers, program source and binary downloads, and sometimes even as a package manager format?

Das ist eine durchaus vernünftige Frage. In den letzten dreißig Jahren hat sich in der Computerwelt so viel verändert, aber wir verwenden immer noch das tar-Format. Worum geht s?

Die Antwort

SuperUser-Mitwirkender Allquixotic bietet einen Einblick in die Langlebigkeit und Funktionalität des Tar-Formats:

Part 1: Performance

Here is a comparison of two separate workflows and what they do.

You have a file on disk

blah.tar.gz

Dies sind beispielsweise 1 GB gzip-komprimierte Daten, die im unkomprimierten Zustand 2 GB beanspruchen (also ein Komprimierungsverhältnis von 50%).

Wenn Sie das Archivieren und Komprimieren separat durchführen möchten, würden Sie Folgendes erstellen:

tar cf blah.tar files …

Das würde in resultieren

blah.tar

Das ist eine bloße Aggregation der

files …

in unkomprimierter Form.

Dann würden Sie tun

gzip blah.tar

Dies würde den Inhalt von lesen

blah.tar

Komprimieren Sie sie von der Festplatte mit dem gzip-Komprimierungsalgorithmus und schreiben Sie den Inhalt in

blah.tar.gz

dann die Verknüpfung aufheben (löschen)

blah.tar

Nun lasst uns dekomprimieren!

Weg 1

Du hast

blah.tar.gz

in gewisser Weise.

Sie beschließen zu laufen:

gunzip blah.tar.gz

Dieser Wille

  • LESEN Sie die komprimierten 1 GB-Dateninhalte von

    blah.tar.gz

  • VERARBEITEN Sie die komprimierten Daten durch

    gzip

    Dekompressor im Speicher.

  • Wenn sich der Speicherpuffer mit "einem Block" an Daten füllt, SCHREIBEN Sie die unkomprimierten Daten in die Datei

    blah.tar

    Wiederholen Sie den Vorgang, bis alle komprimierten Daten gelesen sind.

  • Lösen Sie die Verknüpfung der Datei

    blah.tar.gz

Jetzt hast du

blah.tar

auf der Festplatte, die nicht komprimiert ist, aber eine oder mehrere Dateien enthält, mit sehr geringem Datenstrukturaufwand. Die Dateigröße ist wahrscheinlichein paar Bytes größer als die Summe aller Dateidaten wäre.

Sie laufen:

tar xvf blah.tar

Dieser Wille

  • LESEN Sie die 2 GB unkomprimierten Dateninhalts von

    blah.tar

    und das

    tar

    Datenstrukturen des Dateiformats, einschließlich Informationen zu Dateiberechtigungen, Dateinamen, Verzeichnissen usw.

  • SCHREIBEN Sie die 2 GB Daten und die Metadaten auf die Festplatte. Dies beinhaltet: Übersetzen der Datenstruktur- / Metadaten-Informationen, um gegebenenfalls neue Dateien und Verzeichnisse auf der Festplatte zu erstellen, oder vorhandene Dateien und Verzeichnisse mit neuem Dateninhalt umschreiben.

Die Gesamtdaten wir LESEN Von der Festplatte betrug in diesem Prozess 1 GB (für Gunzip) + 2 GB (für Teer) = 3 GB.

Die Gesamtdaten wir SCHRIEB In diesem Prozess waren 2 GB (für Gunzip) + 2 GB (für Tar) + einige Bytes für Metadaten = ca. 4 GB.

Weg 2

Du hast

blah.tar.gz

in gewisser Weise.

Sie beschließen zu laufen:

tar xvzf blah.tar.gz

Dieser Wille

  • LESEN Sie die komprimierten 1 GB-Dateninhalte von

    blah.tar.gz

    Block für Block in den Speicher.

  • VERARBEITEN Sie die komprimierten Daten durch

    gzip

    Dekompressor im Speicher.

  • Wenn der Speicherpuffer voll ist, wird dies der Fall sein Rohr diese Daten im Speicher bis hin zum

    tar

    Dateiformat-Parser, der Informationen über Metadaten usw. und die unkomprimierten Dateidaten liest.

  • Da füllt sich der Speicherpuffer im

    tar

    Datei-Parser, schreibt er die unkomprimierten Daten auf die Festplatte, indem er Dateien und Verzeichnisse erstellt und sie mit dem unkomprimierten Inhalt füllt.

Die Gesamtdaten wir LESEN von der Festplatte in diesem Prozess waren 1 GB komprimierte Daten, Zeitraum.

Die Gesamtdaten wir SCHRIEB In diesem Prozess waren 2 GB unkomprimierte Daten + einige Bytes für Metadaten = ca. 2 GB.

Wenn Sie feststellen, die Anzahl der Festplatten-E / A in Weg 2 istidentisch auf die Datenträger-E / A, die von beispielsweise ausgeführt wird

Zip

oder

7-Zip

Programme anpassen, um eventuelle Unterschiede im Kompressionsverhältnis anzupassen.

Wenn das Kompressionsverhältnis für Sie wichtig ist, verwenden Sie die Option

Xz

Kompressor zu verkapseln

tar

und Sie haben ein TAR-Archiv von LZMA2, das genauso effizient ist wie der fortschrittlichste Algorithmus, der verfügbar ist

7-Zip

:-)

Teil 2: Funktionen

tar

speichert UNIX-Berechtigungen in seinen Dateimetadaten und ist sehr bekannt und wurde getestet, um ein Verzeichnis mit allen Arten von unterschiedlichen Berechtigungen, symbolischen Links usw. erfolgreich zu packen. Es gibt mehr als einige Fälle, in denen ein Bündel von Dateien möglicherweise in einem Globus gespeichert werden muss eine einzelne Datei oder einen einzelnen Stream, aber nicht unbedingt komprimieren (obwohl Komprimierung nützlich und häufig verwendet wird).

Teil 3: Kompatibilität

Viele Tools werden in Quell- oder Binärform als.tar.gz oder.tar.bz2 verteilt, da es sich um ein Dateiformat mit dem geringsten gemeinsamen Nenner handelt: So wie die meisten Windows-Benutzer Zugriff auf.zip- oder.rar-Dekompressoren haben, die meisten Linux-Installationen. selbst die einfachsten werden zumindest über tar und gunzip verfügen, egal wie alt oder reduziert sie sind. Selbst Android-Firmwares haben Zugriff auf diese Tools.

Neue Projekte, die auf Zielgruppen ausgerichtet sind, auf denen moderne Distributionen ablaufen, können sehr gut in einem moderneren Format verteilt werden, z. B..tar.xz (mit dem Komprimierungsformat Xz (LZMA), das besser komprimiert als gzip oder bzip2) oder mit.7z ähnlich ist die ZIP- oder Rar-Dateiformate, indem sie ein Layout zum Einkapseln mehrerer Dateien in eine einzige Datei komprimieren und angeben.

Sie sehen nicht, dass.7z häufiger verwendet wird, aus dem gleichen Grund, dass Musik nicht von Online-Download-Stores in brandneuen Formaten wie Opus oder Video in WebM verkauft wird. Kompatibilität mit Personen, die alte oder sehr einfache Systeme verwenden.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton aus in den Kommentaren.Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.

Empfohlen: