Zum Inhalt springen

Tar (Packprogramm)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 6. Januar 2006 um 21:20 Uhr durch Harmonica (Diskussion | Beiträge) (linkfix sparse-datei). Sie kann sich erheblich von der aktuellen Version unterscheiden.

tar ist der Name eines im Unix-Umfeld sehr geläufigen Archivierungsprogramms. Außerdem wird so auch das Dateiformat bezeichnet, welches 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.

Heute werden tar-Dateien meist komprimiert, um ihre Größe zu reduzieren. Dazu kommen üblicherweise Unix-typische Datenkompressionsprogramm wie compress, gzip oder bzip2 zum Einsatz. Der Ansatz, erst alle Dateien unkomprimiert aneinanderzuhängen, um sie dann zu komprimieren, wird als solid archiving mittlerweile auch bei anderen Archivformaten wie etwa rar genutzt. Ein komprimierter Tarball trägt üblicherweise die Endung .tar.gz, .tgz, tar.Z, .tar.bz2 oder .tbz, wenn er mit einem der zuvor genannten Programme komprimiert wurde.

Der wahlfreie Zugriff auf einzelne Dateien ist bei tar nicht möglich, da Archivdateien kein Verzeichnis haben, welches die Datei-Offsets zum schnellen Zugriff vorhält, wie es etwa bei Zip der Fall ist. Der Verzicht auf diese zusätzliche Struktur ermöglicht aber auch das einfache Vergrößern von Archiven.

Unter Windows können Tarballs mit 7-Zip, TUGZip oder IZArc bearbeitet werden. Viele andere gängige Archivprogramme können Tar-Archive zumindest öffnen.

Das tar-Format erscheint in BSD4.3, ustar und pax sind in POSIX als Standard. Das gebräuchliche GNU tar entspricht nicht ganz diesem Standard. Insbesondere die oft fehlende Fähigkeit, ACLs zu speichern macht tar zu einem nur eingeschränkt brauchbaren Backup-Programm. Davon abgesehen gelten die oft mangelhafte Unterstützung von Hardlinks und Sparse-Dateien als problematisch und lassen das Rückspielen von Backups manchmal zu einem Lotteriespiel werden. Es gibt neuere Entwicklungen wie star oder bsdtar, die diese Nachteile zu vermeiden versuchen.

Ein weiterer, systematisch bedingter Nachteil liegt in der Art und Weise der Kompression. Solid archiving 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.

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

Einige Beispielaufrufe

Archive mit Inhalt von /etc und /home erstellen:

tar cvf foobar.tar /etc/ /home/
tar cvf - /etc /home | gzip > foobar.tar.gz
tar cvf - /etc /home | bzip2 > foobar.tar.bz2

Mit GNU tar ist folgende Kurzform möglich:

tar czvf foobar.tar.gz /etc/ /home/
tar cjvf foobar.tar.bz2 /etc/ /home/

Archive entpacken:

tar xvf foobar.tar
gunzip < foobar.tar.gz | tar xvf -
bunzip2 < foobar.tar.bz2 | tar xvf -

Mit GNU tar ist folgende Kurzform möglich:

tar xzvf foobar.tar.gz
tar xjvf foobar.tar.bz2

Archivinhalt ansehen:

tar tvf foobar.tar
gunzip < foobar.tar.gz | tar tf -
bunzip2 < foobar.tar.bz2 | tar tf -

Mit GNU tar ist folgende Kurzform möglich:

tar -tzvf foobar.tar.gz
tar -tjvf foobar.tar.bz2