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.tartar -xzf <archive.tar.gz> — Entpackt ein gzip-komprimiertes Archiv.
tar -xzf backup.tar.gztar -xjf <archive.tar.bz2> — Entpackt ein bzip2-komprimiertes Archiv.
tar -xjf backup.tar.bz2tar -xJf <archive.tar.xz> — Entpackt ein xz-komprimiertes Archiv.
tar -xJf backup.tar.xztar -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.txttar -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.tartar -tzf <archive.tar.gz> — Listet den Inhalt eines gzip-komprimierten Archivs auf.
tar -tzf backup.tar.gztar -tvf <archive.tar> — Listet den Inhalt mit detaillierten Dateiinfos auf (Rechte, Größe, Datum).
tar -tvf backup.tartar -tf <archive.tar> | grep <pattern> — Sucht nach einer bestimmten Datei im Archiv.
tar -tf backup.tar | grep configAnhängen & Aktualisieren
tar -rf <archive.tar> <files> — Hängt Dateien an ein bestehendes tar-Archiv an (nur unkomprimiert).
tar -rf backup.tar newfile.txttar -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.txtFortgeschrittene 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.txttar -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.
Weiterführende Links
- GNU tar – Handbuch – die offizielle, vollständige Referenz zu allen Optionen (englisch)
- tar – Wikipedia – Hintergrund zum Dateiformat und seiner Geschichte