tar

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Der Titel dieses Artikels ist mehrdeutig. Weitere Bedeutungen sind unter Tar (Begriffsklärung) aufgeführt.

Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Entwickler fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

tar
Tar-screensh.png

Vorlage:Infobox Dateiformat/Wartung/Screenshot Format
Screenshot der Hilfeanzeige von GNU tar

Dateiendung: .tar
MIME-Type: application/x-tar
Art: Datenarchivierung

tar ist ein im Unix-Umfeld sehr geläufiges Packprogramm. Außerdem wird so auch das Dateiformat bezeichnet, das von diesem Programm verwendet wird.

Der Name wurde aus tape archiver (Bandarchivierer) gebildet, da mit dem Programm ursprünglich Daten auf Bandlaufwerken gesichert wurden. Gleichzeitig ist tar auch das englische Wort für Teer (mit dem Programm werden Dateien unkomprimiert zu einer Datei „zusammengeklebt“).

Tar bietet die Möglichkeit, Dateien sequenziell in eine einzige Datei zu schreiben bzw. Dateien aus selbiger wiederherzustellen. Die entstehende Datei trägt die Endung .tar und wird im Englischen auch als Tarball (dt. Teerklumpen oder Teerkugel) bezeichnet.

Der MIME-Typ für tar-Dateien ist application/x-tar.

Komprimierung[Bearbeiten]

Zunächst werden Dateien (Kreise) mit tar gepackt, anschließend wird dieses Archiv mit gzip komprimiert.

Der wahlfreie Zugriff auf einzelne Dateien ist bei tar nicht möglich, da die Archivdateien kein Verzeichnis haben, das die Datei-Offsets zum schnellen Zugriff vorhält, wie es etwa bei Zip der Fall ist (dies bedeutet nicht, dass nicht auch einzelne Dateien aus einem Archiv entpackt werden können). Der Verzicht auf diese zusätzliche Struktur ermöglicht aber auch das einfache Vergrößern von Archiven und vor allem auch das Extrahieren von Dateien aus unvollständigen oder defekten Archiven.

Heute werden tar-Archive häufiger in tar-Dateien gefunden als auf Bändern. Diese Archiv-Dateien sind meist komprimiert, um ihre Größe zu reduzieren. Dazu kommen üblicherweise Unix-typische Packprogramme wie compress, gzip, bzip2, xz oder lzma zum Einsatz. Der Ansatz, erst alle Dateien unkomprimiert aneinanderzuhängen, um sie dann zu komprimieren, wird als solide Kompression bezeichnet und mittlerweile auch bei anderen Archivformaten wie etwa RAR oder 7-Zip genutzt. In Abhängigkeit vom verwendeten Kompressionsprogramm lauten die Dateiendungen eines Tarballs üblicherweise .tar.Z (compress), .tar.gz oder kurz .tgz (gzip), .tar.bz2 oder .tbz2 oder .tbz (bzip2) bzw. .tar.xz oder .txz (xz), oder tar.lzma (lzma).

Wenn keine solide Kompression gewünscht ist, können auch die einzelnen Dateien zunächst komprimiert und anschließend in den Tarball eingegliedert werden. Dadurch ist es weiterhin möglich, unvollständige Einzelteile eines Tar-Archivs zu entpacken, falls ein Algorithmus für solide Kompression gewählt wurde, der ein Wiederaufsetzen nach einem Defekten Block nicht beherrscht. Die Nachteile (begrenzte Dateigröße durch den notwendigen temporären Platz für die Kompression einzelner Dateien, bzw. völliges Versagen bei sich während der Archivierung ändernder Dateien) überwiegen jedoch, sodass dieser Ansatz in der Regel nicht gewählt wird: Denn man muss beim Entpacken wissen, ob und auf welche Weise die Einzeldateien komprimiert wurden, da es anhand der Dateiendung nicht ersichtlich ist; wird das Archiv aber normal entpackt, meldet Tar keinen Fehler, sondern entpackt alle Dateien in weiterhin komprimierter Form. Zudem ist die Kompressionsrate normalerweise geringer als bei solider Kompression. Hinzu kommt, dass sich nur ein geringer Geschwindigkeitsvorteil beim Entpacken einzelner Dateien ergibt, da das Archiv hierzu ohnehin sequentiell durchsucht werden muss.

Probleme, Alternativen[Bearbeiten]

Das tar-Format erschien 1979 in einem Update für UNIX Version 7, ustar und pax sind im POSIX-Standard spezifiziert. Das unter Linux gebräuchliche GNU tar entspricht nicht ganz dem POSIX-Standard. Insbesondere die oft fehlende Fähigkeit, Zugriffskontrolllisten zu speichern, machen tar und GNU tar für manche Nutzer zu nur eingeschränkt brauchbaren Datensicherungsprogrammen. Die bei manchen Implementierungen unzureichende Unterstützung von Sparse-Dateien kann zudem beim Wiedereinspielen eines Archivs zu Problemen führen. star oder bsdtar versuchen diese Nachteile zu vermeiden.

Ein weiterer, systembedingter Nachteil liegt in der Art und Weise der Kompression. Solide Kompression bedingt nämlich, dass der Verlust eines einzigen Blocks den Verlust des gesamten restlichen Bandarchivs zur Folge haben kann, falls das Kompressionsprogramm nach diesem Punkt nicht mehr synchronisieren kann. Auf diesem Gebiet gibt es bisher Versuche wie afio, das dateiweise komprimiert, aber auf einer privaten Variante des durch POSIX inzwischen als veraltet deklariertem cpio Formats aufsetzt, und bestimmte blockweise komprimierende Algorithmen, zu denen bis zu einem gewissen Grad bzip2 bereits zählt.

Ein Unix-Kommando, welches in seinen Funktionen tar sehr ähnelt, ist cpio. Der POSIX-Standard pax gibt vor, die Kommandos tar und cpio zu vereinen und ist ein Ergebnis der sogenannten Tar-Wars, die um das Jahr 1992 geführt wurden.[1] Das beliebteste Programm zum Archivieren von Dateien unter Unix ist unabhängig von dieser Standardisierung weiterhin tar.

Einige Beispielaufrufe[Bearbeiten]

Archive mit Inhalt von /etc und /home erstellen:

tar cvf test.tar /etc/ /home/
tar cvf - /etc /home | gzip > test.tar.gz
tar czvf test.tar.gz /etc/ /home/         # *GNU tar* Kurzform
tar -czvf test.tar.gz /etc/ /home/        # *GNU tar* Alternative

Archive entpacken:

tar xvf test.tar
gunzip < test.tar.gz | tar xvf -
tar xzvf test.tar.gz                      # *GNU tar* Kurzform
tar -xzvf test.tar.gz                     # *GNU tar* Alternative
tar -xzvf test.tar.gz --no-anchored singlefile.txt # einzelnes File auspacken

Archivinhalt ansehen:

tar tvf test.tar
gunzip < test.tar.gz | tar tf -
tar tzvf test.tar.gz                      # *GNU tar* Kurzform
tar -tzvf test.tar.gz                     # *GNU tar* Alternative

Die Schreibweise der Kommandos ohne führendes Minus ist dabei die kompatible UNIX-Syntax und sollte bevorzugt verwendet werden.

tar und Windows[Bearbeiten]

Mit dem Betriebssystem Windows können die mit tar gepackten Dateien nicht direkt entpackt bzw. geöffnet werden. Dazu ist ein zusätzliches Programm notwendig. Archivprogramme wie 7-Zip, TUGZip oder IZArc können tar unter Windows entpacken, aber auch andere gängige Archivprogramme können tar-Archive öffnen.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. http://www.opengroup.org/onlinepubs/9699919799/utilities/pax.html