www.wbglinks.net

Der tar-Befehl: Archive packen und entpacken unter Linux

Der tar-Befehl bündelt unter Linux Dateien und Verzeichnisse zu einer Archivdatei. Er bewahrt dabei nicht nur Inhalte, sondern auch Dateinamen, Zugriffsrechte, Eigentümer, Gruppen, Zeitstempel und die Verzeichnisstruktur. Kompression kommt erst im zweiten Schritt dazu.

Was tar bedeutet – und was ein Tarball tatsächlich enthält

tar steht für Tape Archive. Das Programm entstand für Magnetbänder, die kein Dateisystem besitzen. Im Januar 1979 führte AT&T Bell Laboratories es mit Version 7 Unix ein; es löste dort das ältere Programm tp ab. Die 512-Byte-Blockgröße ist ebenfalls ein Überbleibsel dieser Zeit: Standardmäßig bündelt tar 20 Blöcke zu einem 10-KiB-Record.

Ein tar-Archiv ist ein Container, keine Kompression. Es reiht Dateien nacheinander in einen Datenstrom ein und speichert dazu ihre Metadaten. Deshalb eignet es sich gut für Linux-Backups, Deployment-Pakete und Quellcode, bei denen Rechte und symbolische Links erhalten bleiben sollen. Der umgangssprachliche Name Tarball spielt auf Teerklumpen an, an denen allerlei Dinge haften bleiben.

1988 standardisierte POSIX.1-1988 das Format als UStar, kurz für Unix Standard TAR. POSIX.1-2001 bevorzugte später pax; tar bleibt dennoch praktisch überall im Einsatz. Auf den meisten Linux-Distributionen ist GNU tar die Standardimplementierung.

Die Grundbefehle: erstellen, anzeigen, entpacken

Jeder Aufruf braucht genau einen Betriebsmodus. Für die tägliche Arbeit reichen meist drei: -c erstellt ein neues Archiv, -t zeigt seinen Inhalt und -x entpackt ihn. -f legt den Namen der Archivdatei fest und steht unmittelbar vor diesem Namen. Mit -v gibt tar jede bearbeitete Datei aus.

Aufgabe Option Beispiel
Neues Archiv erstellen -c, -f tar -cvf archiv.tar verzeichnis/
Inhalt kontrollieren -t, -f tar -tvf archiv.tar
Archiv entpacken -x, -f tar -xvf archiv.tar

Die Schreibweisen tar cvf, tar -cvf und tar --create --file sind bei GNU tar möglich. Für nachvollziehbare Befehlszeilen ist die Kurzform mit Bindestrich praktisch; die Langform macht Skripte besonders lesbar.

Ein tar-Archiv erstellen, ohne Pfade und Ausschlüsse zu übersehen

Für ein unkomprimiertes Archiv genügt die Angabe des Verzeichnisses:

tar -cvf archiv.tar verzeichnis/

Beim Packen aus einem anderen Ort hilft -C: tar wechselt vor der Operation in dieses Verzeichnis. So bleiben im Archiv relative Pfade erhalten, statt der ganze Ausgangspfad aufzutauchen.

tar -cvf archiv.tar -C /daten verzeichnis/

Für Backups ist oft entscheidend, was nicht hinein soll. --exclude akzeptiert Wildcard-Muster und kann mehrfach stehen.

tar -czf archiv.tar.gz --exclude='.env' --exclude='node_modules' --exclude='*.log' verzeichnis/

-r beziehungsweise --append hängt Dateien an ein bestehendes unkomprimiertes Archiv an. Für komprimierte Archive ist diese Option nicht vorgesehen.

Komprimierte tar-Dateien: gzip, bzip2 und xz richtig wählen

tar arbeitet für die Komprimierung mit externen Verfahren zusammen. -z steht für gzip, -j für bzip2 und -J für xz. Die Endung sollte zur gewählten Option passen, damit der Inhalt sofort erkennbar bleibt.

Format Erstellen Einordnung
.tar.gz tar -czvf archiv.tar.gz verzeichnis/ Am schnellsten und am weitesten verbreitet, aber mit der geringsten Kompression dieser drei Verfahren.
.tar.bz2 tar -cjvf archiv.tar.bz2 verzeichnis/ Komprimiert besser als gzip, braucht beim Packen und Entpacken mehr Zeit.
.tar.xz tar -cJvf archiv.tar.xz verzeichnis/ Erzielt die stärkste Kompression, ist aber am langsamsten.

Mit -a wählt tar den Kompressor anhand der Endung selbst:

tar -cavf archiv.tar.gz verzeichnis/

Im Vergleich zu zip trennt tar Archivierung und Komprimierung. zip komprimiert Dateien einzeln und erlaubt durch seinen zentralen Index zufälligen Zugriff; tar liest sequenziell. Dafür erhält tar Unix-Berechtigungen, Eigentümer und symbolische Links besser. Für Linux-interne Backups ist tar deshalb die naheliegende Wahl, für Austausch mit Windows-Anwendern häufig zip. Ein .tar.gz ist typischerweise 5–15 Prozent kleiner als ein entsprechendes ZIP-Archiv, weil gzip den gesamten Datenstrom gemeinsam verarbeitet.

Archive sicher entpacken und nur benötigte Dateien extrahieren

Vor dem Entpacken zeigt -t, welche Pfade ein Archiv enthält. Unbekannte Archive gehören nur in ein leeres, nicht öffentlich zugängliches Verzeichnis.

  1. Inhalt prüfen: tar -tzf archiv.tar.gz
  2. Zielordner anlegen: mkdir -p ziel/
  3. In diesen Ordner entpacken: tar -xzf archiv.tar.gz -C ziel/

Das Ziel für -C muss bereits existieren. Soll nur eine bestimmte Datei heraus, folgt ihr gespeicherter Pfad nach dem Archivnamen:

tar -xzf archiv.tar.gz pfad/zur/datei.txt

Mehrere Dateien lassen sich ebenso angeben. --strip-components=N entfernt beim Extrahieren die ersten N Pfadebenen aus den Dateinamen. Mit --keep-old-files verhindert tar das Überschreiben vorhandener Dateien; --skip-old-files überspringt sie ohne Fehlermeldung.

Typische tar-Fehler – und warum ein Archiv nicht automatisch harmlos ist

Die Meldung This does not look like a tar archive bedeutet meist: Die Datei ist kein tar-Archiv oder der Download ist unvollständig. Der Befehl file archiv hilft, den tatsächlichen Typ zu prüfen. Auch -f sorgt oft für Verwirrung: Der Archivname muss direkt danach stehen.

Gefährlicher als ein Tippfehler sind manipulierte Archive. Eine Tar-Bombe kann aus wenigen Kilobyte komprimierter Daten mehrere Terabyte unkomprimierten Inhalt erzeugen. Pfade, die mit / oder ../ beginnen, können Dateien außerhalb des Zielverzeichnisses platzieren. Daher unbekannte Archive nicht mit sudo entpacken und nur einen separaten, leeren Zielordner verwenden. Auch als Superuser sollten die übergeordneten Ordner nicht für Unbefugte beschreibbar sein.

Warum die Suche auch zu Cate Blanchett und Lydia Tár führt

Die Schreibweise führt zu einer zweiten Bedeutung: TÁR ist ein US-amerikanisches Psychodrama aus dem Jahr 2022, geschrieben und inszeniert von Todd Field. Cate Blanchett spielt darin Lydia Tár, eine fiktive, international gefeierte Dirigentin und Komponistin sowie erste weibliche Chefdirigentin eines großen deutschen Orchesters. Mit dem Unix-Programm hat der Film nichts zu tun.

Die Figur wird so plausibel gezeichnet, dass viele Zuschauer Lydia Tár für real hielten. Ihr bürgerlicher Name im Film lautet Linda Tarr; der künstlerische Name Tár geht auf einen Vorschlag von Blanchett zurück, angeregt durch das ungarische Wort gyógyszertár für Apotheke. Der Akut verweist auf diese ungarische Herkunft. Todd Field schrieb die Rolle speziell für Cate Blanchett; ohne ihre Zusage wäre der Film nicht gedreht worden.

Häufige Fragen

Was bedeutet tar?

tar bedeutet Tape Archive. Es bezeichnet sowohl ein Archivformat als auch das Programm, das Dateien und Verzeichnisse samt Metadaten in einer Datei zusammenfasst.

Wie erstellt man mit tar ein Archiv?

Für ein einfaches Archiv lautet der Aufruf tar -cvf archiv.tar verzeichnis/. Für gzip-Kompression kommt -z hinzu: tar -czvf archiv.tar.gz verzeichnis/.

Wie entpackt man ein tar-Archiv?

Ein unkomprimiertes Archiv wird mit tar -xvf archiv.tar entpackt. Bei .tar.gz lautet der Aufruf tar -xzvf archiv.tar.gz; -C ziel/ wählt einen vorhandenen Zielordner.

Welche Optionen sind bei tar am wichtigsten?

-c erstellt, -x extrahiert, -t listet, -v zeigt bearbeitete Dateien und -f bestimmt den Archivnamen. Für Kompression stehen -z, -j und -J bereit.

Was heißt Tár?

Tár ist der künstlerische Name der fiktiven Filmfigur Lydia Tár. Er wurde vom ungarischen Wort gyógyszertár inspiriert und hat keine Verbindung zum Archivierungsprogramm tar.

Ebenfalls lesenswert