- Tar
-
tar
Screenshot der Hilfeanzeige von tarDateiendung .tar
MIME-Type application/x-tar
Art Datenarchivierung Container für beliebige Dateien Enthalten in gzip Website: gnu.org/software/tar Tar ist der Name eines im Unix-Umfeld sehr geläufigen Archivierungsprogramms. 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 wieder herzustellen. Die entstehende Datei trägt die Endung .tar (unkomprimiert) und wird auch als Tarball (dt. Teerklumpen oder Teerkugel) bezeichnet.
Der MIME-Typ für tar-Dateien ist application/x-tar.
Unter Windows können Tarballs mit 7-Zip, TUGZip oder IZArc bearbeitet werden. Viele andere gängige Archivprogramme können tar-Archive zumindest öffnen.
Inhaltsverzeichnis
Komprimierung
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.
Heute werden tar-Dateien meist komprimiert, um ihre Größe zu reduzieren. Dazu kommen üblicherweise Unix-typische Datenkompressionsprogramme wie compress, gzip oder bzip2 zum Einsatz, mit denen das fertige Archiv anschließend komprimiert wird. 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. Ein komprimierter Tarball trägt üblicherweise die Endung .tar.gz, .tgz, tar.Z, .tar.bz2, .tbz2 oder .tbz, wenn er mit einem der zuvor genannten Programme komprimiert wurde.
Wenn keine solide Kompression gewünscht ist, können über Pipes 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, was bei solider Kompression nicht möglich ist. Die Nachteile ü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. Dazu kommt, dass man nur einen geringen Geschwindigkeitsvorteil beim Entpacken einzelner Dateien erhält, da das Archiv hierzu ohnehin sequentiell durchsucht werden muss.
Probleme, Alternativen
Das tar-Format erscheint in BSD4.3, ustar und pax sind im POSIX-Standard spezifiziert. Das gebräuchliche GNU tar entspricht nicht ganz diesem Standard. Insbesondere die oft fehlende Fähigkeit, Zugriffskontrolllisten zu speichern, macht tar zu einem nur eingeschränkt brauchbaren Backup-Programm. Die bei manchen Implementierungen unzureichende Unterstützung von Hardlinks und Sparse-Dateien kann zudem beim Wiedereinspielen eines Archivs zu Problemen führen. Es gibt neuere Entwicklungen wie star oder bsdtar, die diese Nachteile zu vermeiden versuchen.
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. Auf diesem Gebiet gibt es bisher Versuche wie afio, das dateiweise komprimiert, 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 vereint die Kommandos tar und cpio über das Kommando pax.
Einige Beispielaufrufe
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
Archive entpacken:
tar -xvf test.tar gunzip < test.tar.gz | tar xvf - tar xzvf test.tar.gz # *GNU tar* Kurzform
Archivinhalt ansehen:
tar tvf test.tar gunzip < test.tar.gz | tar tf - tar tzvf test.tar.gz # *GNU tar* Kurzform
Weblinks
Wikimedia Foundation.