tar — Archive packen und entpacken

Praxis-Guide zu tar — Archive erstellen und entpacken, mit gzip-, bzip2- und xz-Kompression, Backups, SSH-Transfer und gezieltem Extrahieren.

tar ist das Standardwerkzeug, um unter Linux und Unix ganze Verzeichnisbäume in eine einzige Archivdatei zu bündeln – samt Rechten, Zeitstempeln und Symlinks. Ursprünglich für Bandlaufwerke gedacht („tape archive"), ist es heute das Rückgrat fast jedes Backups und jeder Software-Distribution. tar komprimiert nicht selbst, sondern reicht den Datenstrom an gzip, bzip2 oder xz weiter – du steuerst das einfach über ein zusätzliches Flag. Dieser Guide zeigt dir die wichtigsten Befehle zum Packen, Entpacken, Durchsuchen und für fortgeschrittene Backup-Workflows.

Archive erstellen

tar -cf <archive.tar> <files> — Erstellt ein unkomprimiertes tar-Archiv.

tar -cf backup.tar /home/user/docs/

tar -czf <archive.tar.gz> <files> — Erstellt ein gzip-komprimiertes Archiv.

tar -czf backup.tar.gz /home/user/docs/

tar -cjf <archive.tar.bz2> <files> — Erstellt ein bzip2-komprimiertes Archiv.

tar -cjf backup.tar.bz2 /home/user/docs/

tar -cJf <archive.tar.xz> <files> — Erstellt ein xz-komprimiertes Archiv (beste Kompression).

tar -cJf backup.tar.xz /home/user/docs/

tar -cf <archive.tar> -C <directory> . — Erstellt ein Archiv aus einem Verzeichnis, ohne den übergeordneten Pfad mit aufzunehmen.

tar -cf backup.tar -C /home/user/docs/ .

tar -czf <archive.tar.gz> --exclude='<pattern>' <files> — Erstellt ein Archiv und lässt Dateien aus, die auf ein Muster passen.

tar -czf backup.tar.gz --exclude='*.log' /home/user/docs/

Archive entpacken

tar -xf <archive.tar> — Entpackt ein tar-Archiv in das aktuelle Verzeichnis.

tar -xf backup.tar

tar -xzf <archive.tar.gz> — Entpackt ein gzip-komprimiertes Archiv.

tar -xzf backup.tar.gz

tar -xjf <archive.tar.bz2> — Entpackt ein bzip2-komprimiertes Archiv.

tar -xjf backup.tar.bz2

tar -xJf <archive.tar.xz> — Entpackt ein xz-komprimiertes Archiv.

tar -xJf backup.tar.xz

tar -xf <archive.tar> -C <directory> — Entpackt in ein bestimmtes Verzeichnis.

tar -xf backup.tar -C /tmp/restore/

tar -xf <archive.tar> <file> — Entpackt nur eine bestimmte Datei aus dem Archiv.

tar -xf backup.tar home/user/docs/readme.txt

tar -xf <archive.tar> --wildcards '*.txt' — Entpackt nur Dateien, die auf ein Wildcard-Muster passen.

tar -xf backup.tar --wildcards '*.txt'

Inhalt anzeigen

tar -tf <archive.tar> — Listet alle Dateien eines Archivs auf, ohne es zu entpacken.

tar -tf backup.tar

tar -tzf <archive.tar.gz> — Listet den Inhalt eines gzip-komprimierten Archivs auf.

tar -tzf backup.tar.gz

tar -tvf <archive.tar> — Listet den Inhalt mit detaillierten Dateiinfos auf (Rechte, Größe, Datum).

tar -tvf backup.tar

tar -tf <archive.tar> | grep <pattern> — Sucht nach einer bestimmten Datei im Archiv.

tar -tf backup.tar | grep config

Anhängen & Aktualisieren

tar -rf <archive.tar> <files> — Hängt Dateien an ein bestehendes tar-Archiv an (nur unkomprimiert).

tar -rf backup.tar newfile.txt

tar -uf <archive.tar> <files> — Aktualisiert Dateien im Archiv nur, wenn sie neuer sind.

tar -uf backup.tar /home/user/docs/

tar --delete -f <archive.tar> <file> — Entfernt eine Datei aus dem Archiv (nur unkomprimiert).

tar --delete -f backup.tar oldfile.txt

Fortgeschrittene Optionen

tar -czf - <files> | ssh <host> "cat > backup.tar.gz" — Erstellt ein komprimiertes Archiv und sendet es per SSH an einen entfernten Server.

tar -czf - /home/user/docs/ | ssh server "cat > backup.tar.gz"

tar -czf <archive.tar.gz> --newer-mtime='<date>' <files> — Archiviert nur Dateien, die nach einem bestimmten Datum geändert wurden.

tar -czf recent.tar.gz --newer-mtime='2025-01-01' /home/user/docs/

tar -czf <archive.tar.gz> -T <filelist> — Erstellt ein Archiv aus einer Dateiliste in einer Textdatei.

tar -czf backup.tar.gz -T files.txt

tar -czf - <files> | split -b <size> - <prefix> — Erstellt ein in Teile zerlegtes Archiv für große Backups.

tar -czf - /data/ | split -b 100M - backup_part_

cat <prefix>* | tar -xzf - — Entpackt ein in Teile zerlegtes Archiv.

cat backup_part_* | tar -xzf -

Fazit

tar ist erstaunlich vielseitig: ein einziges Werkzeug für Backups, Software-Pakete und den Transport ganzer Verzeichnisbäume über das Netz. Merke dir die zwei Buchstaben-Paare -c (create) und -x (extract) plus den Kompressions-Schalter (z für gzip, j für bzip2, J für xz) – damit deckst du den Alltag ab. Beim Erstellen entfernt tar führende / aus absoluten Pfaden, sodass Archive standardmäßig relativ entpackt werden. Sei dennoch vorsichtig beim Auspacken fremder Archive: Prüfe den Inhalt vorab mit -t, da manipulierte Pfade (Path-Traversal über ../) Dateien außerhalb des Zielverzeichnisses überschreiben könnten.

Verwandte Kommandos

  • 7z – Hochkompressions-Archivierer mit eigenem 7z-Format
  • gzip – schnelle Stromkompression, oft mit tar kombiniert
  • zip – plattformübergreifendes Archivformat mit Kompression pro Datei