Wikipedia · einfach zusammengefasst · Stand
Tar (Packprogramm)
tar ist ein im Unix-Umfeld sehr geläufiges Packprogramm. Das von dem Programm verwendete Dateiformat trägt ebenfalls die Bezeichnung tar.
Inhalt5 Abschnitte
Grundprinzip und Format
tar ist ein besonders im Unix-Umfeld verbreitetes Packprogramm; zugleich heißt auch das von ihm verwendete Archivformat tar. Es dient der Datenarchivierung und schreibt Dateien, Verzeichnisse sowie andere Objekte eines Dateisystems nacheinander in eine einzige Datei. Umgekehrt kann es die darin gespeicherten Objekte wiederherstellen. Das Archiv erhält üblicherweise die Dateiendung .tar und wird auch Tarball genannt. Es kann außerdem als „Filesystem in Userspace“ eingebunden werden.
Eine tar-Datei bündelt Daten zunächst ohne eigene Komprimierung. Ihr MIME-Typ lautet application/x-tar. Anders als beispielsweise ZIP enthält das Format kein Inhaltsverzeichnis mit den Positionen der einzelnen Dateien. Deshalb muss ein Programm das Archiv sequenziell durchsuchen. Einzelne Dateien lassen sich zwar gezielt entpacken, aber nicht direkt über einen schnellen wahlfreien Zugriff erreichen.
Komprimierung von Archiven
In der Praxis werden tar-Archive meist zusätzlich komprimiert, um ihre Größe zu verringern. Übliche Programme und Endungen sind:
- compress: .tar.Z
- gzip: .tar.gz oder .tgz
- bzip2: .tar.bz2, .tbz2 oder .tbz
- xz: .tar.xz oder .txz
- lzma: .tar.lzma
Normalerweise fügt tar zuerst alle Dateien unkomprimiert zu einem Archiv zusammen; anschließend wird das gesamte Archiv komprimiert. Dieses Verfahren heißt solide Kompression. Es wird auch von Formaten wie RAR und 7-Zip genutzt. Weil gemeinsame oder ähnliche Daten über Dateigrenzen hinweg berücksichtigt werden können, ist die Kompressionsrate gewöhnlich höher als bei einer getrennten Komprimierung jeder Datei.
Alternativ können zunächst die einzelnen Dateien komprimiert und danach in den Tarball aufgenommen werden. Das kann die Rettung unbeschädigter Einzelteile erleichtern, wenn ein Verfahren zur soliden Kompression nach einem defekten Block nicht wieder einsetzen kann. Die Nachteile überwiegen jedoch meist: Für die Einzelkomprimierung wird temporärer Speicher benötigt, während der Archivierung veränderte Dateien können Probleme verursachen, und die Kompressionsrate ist gewöhnlich geringer. Auch der Geschwindigkeitsgewinn beim Entpacken einzelner Dateien bleibt klein, weil das Archiv trotzdem sequenziell durchsucht werden muss.
Der Verzicht auf ein Inhaltsverzeichnis erleichtert das Vergrößern eines Archivs. Außerdem können Dateien teilweise noch aus unvollständigen oder beschädigten Archiven extrahiert werden. Bei solider Kompression kann allerdings der Verlust eines Blocks dazu führen, dass auch der gesamte folgende Archivteil verloren ist, falls das Kompressionsprogramm sich danach nicht erneut synchronisieren kann.
Grenzen und Alternativen
tar-Archive sind auf unixoiden Betriebssystemen beliebt, weil sie viele Eigenschaften dieser Systeme verarbeiten können. Sie werden im Hintergrund unter anderem von Software-Updates und Backup-Programmen wie apt-get und duplicity verwendet.
Das fehlende Inhaltsverzeichnis ist zugleich ein wesentlicher Nachteil: Software muss grundsätzlich die gesamte tar-Datei einlesen, um ihren Inhalt festzustellen und den gewünschten Teil zu finden. Bei der Update-Funktion werden neue und geänderte Dateien hinten angehängt; alte oder inzwischen gelöschte Versionen bleiben an ihrer bisherigen Stelle erhalten. Dadurch wächst das Archiv und wird noch aufwendiger zu durchsuchen. Diese Eigenschaften hängen mit der ursprünglichen Ausrichtung auf sequenziell arbeitende Bandlaufwerke zusammen.
Das tar-Format erschien 1979 in einem Update für UNIX Version 7. Die Formate ustar und pax sind im POSIX-Standard festgelegt. Das unter Linux verbreitete GNU tar entspricht diesem Standard nicht vollständig. Besonders die oft fehlende Speicherung von Zugriffskontrolllisten schränkt tar und GNU tar als Datensicherungsprogramme ein. Auch eine unzureichende Unterstützung von Sparse-Dateien, also Dateien mit nicht belegten Bereichen, kann beim Wiederherstellen Probleme verursachen. Programme wie star und bsdtar versuchen, solche Nachteile zu vermeiden.
cpio ist ein Unix-Kommando mit ähnlichen Funktionen. Der POSIX-Standard pax soll die Funktionen von tar und cpio zusammenführen. afio komprimiert Dateien einzeln, verwendet jedoch eine private Variante des inzwischen von POSIX als veraltet eingestuften cpio-Formats. Eine weitere Möglichkeit sind blockweise komprimierende Verfahren, zu denen bzip2 bis zu einem gewissen Grad zählt.
Wie cpio- und ZIP-Archive speichert ein tar-Archiv keine Information darüber, in welchem Zeichensatz seine Dateinamen abgelegt sind. In Dateisystemen wird dafür in der Regel UTF-8 verwendet.
Typische Befehle
Bei tar kennzeichnen Buchstaben die gewünschte Tätigkeit: c erstellt ein Archiv, x entpackt es, t zeigt den Inhalt, u aktualisiert, v gibt die verarbeiteten Dateien ausführlich aus und f bestimmt die Archivdatei. Bei GNU tar aktiviert z die gzip-Komprimierung.
Ein neues Archiv aus /etc und /home wird beispielsweise mit „tar cvf test.tar /etc/ /home/“ erstellt. Die gzip-komprimierte Variante lautet in der GNU-tar-Kurzform „tar czvf test.tar.gz /etc/ /home/“. Gleichwertig können die tar-Daten über eine Pipe direkt an gzip weitergegeben werden: „tar cvf - /etc /home | gzip > test.tar.gz“. Auch die ausführliche Schreibweise „tar --create --gzip --verbose --file test.tar.gz /etc/ /home/“ ist möglich.
Mit „tar uvf test.tar /etc/ /home/“ wird ein unkomprimiertes Archiv aktualisiert. Neue und geänderte Dateien werden hinzugefügt, während gelöschte Dateien im Archiv bleiben. Die Update-Option funktioniert nicht bei komprimierten Archiven.
„tar xvf test.tar“ entpackt ein unkomprimiertes Archiv; „tar xzvf test.tar.gz“ entpackt ein gzip-komprimiertes Archiv. Eine einzelne Datei lässt sich etwa mit „tar -xzvf test.tar.gz --no-anchored singlefile.txt“ auswählen. Den Inhalt zeigt „tar tvf test.tar“ beziehungsweise bei gzip-Komprimierung „tar tzvf test.tar.gz“ an. Die kompatible UNIX-Syntax schreibt die Optionsbuchstaben ohne führendes Minus und sollte bevorzugt werden.
Verwendung unter Windows
Seit Windows 10 1803 wird tar zusammen mit dem Betriebssystem installiert. Ältere Windows-Versionen können tar-Dateien nicht unmittelbar öffnen oder entpacken und benötigen dafür ein zusätzliches Programm. Genannt werden 7-Zip, TUGZip und IZArc; auch weitere gängige Archivprogramme können tar-Archive öffnen.