tar-Befehle erstellen

Erstelle, entpacke und liste tar-Archive auf, ohne die Flags nachschlagen zu müssen.

Über dieses Tool

Wähle, ob du ein Archiv erstellen, entpacken oder auflisten willst, wähle die Kompression (gzip, bzip2, xz oder zstd), füge Dateien und Ausschlüsse hinzu und kopiere den tar-Befehl mit Erklärung zu jedem Flag.

So verwendest du es

  1. Wähle Erstellen, Entpacken oder Inhalt auflisten.
  2. Wähle die Kompression; der Archivname erhält die passende Endung.
  3. Gib für ein neues Archiv die einzuschließenden Dateien und Ordner sowie Ausschlussmuster an.
  4. Kopiere den Befehl und lies, was jedes Flag bewirkt.

Fragen

Wie entpacke ich eine .tar.gz-Datei?
Führe tar -xzvf file.tar.gz aus. Füge -C folder hinzu, um woandershin zu entpacken. Aktuelles GNU tar und das tar unter macOS erkennen die Kompression selbst, daher funktioniert auch tar -xvf file.tar.gz.
Welche Kompression sollte ich wählen?
gzip ist die sichere Standardwahl, die sich überall öffnen lässt. zstd ist meist schneller und kleiner, sofern jeder Rechner, der die Datei öffnet, ein aktuelles tar hat. xz liefert die kleinsten Dateien, ist aber am langsamsten.
Warum muss -f in -czvf am Ende stehen?
f nimmt das nächste Wort als Archivnamen. Bei -czfv würde tar v als Dateinamen behandeln. Setze f ans Ende der Buchstabengruppe.
Was macht --strip-components?
Es entfernt beim Entpacken führende Ordner aus jedem Pfad. Archive enthalten oft einen obersten Ordner wie project-1.2/; --strip-components=1 legt seinen Inhalt direkt im Ziel ab.
Wie sehe ich den Inhalt, ohne zu entpacken?
Nutze Inhalt auflisten, das ergibt tar -tvf archive.tar.gz. Es gibt jede Datei mit Größe und Datum aus und ändert nichts.
Wie füge ich Dateien zu einem bestehenden tar.gz hinzu?
An ein komprimiertes Archiv kannst du nichts anhängen. tar -rf fügt Dateien nur zu einem unkomprimierten .tar hinzu. Bei einem .tar.gz erstellst du das Archiv entweder mit den zusätzlichen Dateien neu, oder du dekomprimierst es mit gunzip, führst tar -rf backup.tar newfile aus und komprimierst es wieder mit gzip.
Warum meldet tar „Not found in archive“?
Der angeforderte Pfad entspricht nicht exakt einem Eintragsnamen. Führe tar -tzf archive.tar.gz aus und kopiere den Pfad aus der Ausgabe: Mit tar -czf x.tar.gz . erstellte Archive speichern jeden Namen mit führendem ./, und viele haben einen obersten Ordner. Muster brauchen in GNU tar außerdem --wildcards.
Wie verhindere ich, dass macOS ._-Dateien in ein tar-Archiv packt?
Das tar unter macOS (bsdtar) speichert erweiterte Attribute als zusätzliche ._-Dateien, die unter Linux als Datenmüll auftauchen. Erstelle das Archiv mit --no-mac-metadata oder setze COPYFILE_DISABLE=1 vor den Befehl: COPYFILE_DISABLE=1 tar -czf backup.tar.gz project. Unter Linux und mit GNU tar ändert sich nichts.

tar.gz-Archiv eines Ordners erstellen: so geht’s

Führe tar -czvf backup.tar.gz src docs package.json aus, um die aufgeführten Dateien und Ordner zu packen. Pfade werden so gespeichert, wie du sie eingibst, nimm also relative Pfade. Um einen Ordner ohne den darüberliegenden Pfad zu speichern, wechsle zuerst mit -C das Verzeichnis: tar -czf site.tar.gz -C /var/www html. GNU tar und bsdtar entfernen ein führendes / aus absoluten Pfaden, damit das Archiv beim Entpacken keine Systemdateien überschreiben kann.

Um etwas auszulassen, füge --exclude=node_modules oder --exclude="*.log" hinzu und setze Muster in Anführungszeichen, damit die Shell sie nicht expandiert. Ein Muster ohne Schrägstrich passt auf diesen Namen in jeder Tiefe. In GNU tar gehören die --exclude-Optionen vor die Dateiliste, weil sie nur für danach aufgeführte Dateien gelten. Schreib das Archiv außerhalb des Ordners, den du packst, damit tar nicht versucht, das Archiv in sich selbst zu packen.

tar.gz vs. zip: Welches Archivformat nehmen?

tar behält Unix-Rechte, Eigentümer und Symlinks, was bei Skripten und Deployments wichtig ist. Es komprimiert alle Dateien als einen Datenstrom, sodass viele kleine, ähnliche Dateien stärker schrumpfen als in zip. Der Preis ist fehlender wahlfreier Zugriff: Um eine Datei aufzulisten oder zu entpacken, muss das Archiv durchgelesen werden. zip komprimiert jede Datei einzeln und lässt sich unter Windows nativ öffnen, wobei ab Windows 10 auch tar mitgeliefert wird.

.tgz ist nur ein kürzerer Name für .tar.gz, mit genau demselben Inhalt. .tar.bz2 und .tar.xz tauschen Geschwindigkeit gegen kleinere Dateien, und .tar.zst ist schnell und klein, braucht aber GNU tar 1.31 oder neuer bzw. ein aktuelles bsdtar mit dem Flag --zstd. GNU tar und bsdtar akzeptieren beide auch -a, das beim Erstellen die Kompression anhand der Dateiendung des Archivs wählt.

Einzelne Datei aus einem tar-Archiv entpacken

Nenne die Datei nach dem Archiv: tar -xzf backup.tar.gz src/config.yml. Der Pfad muss exakt dem entsprechen, was tar -tzf backup.tar.gz ausgibt, inklusive eines führenden ./ oder eines obersten Ordners. GNU tar braucht --wildcards, um Muster wie "*.yml" zu verwenden, bsdtar unter macOS akzeptiert sie direkt. Füge -O hinzu, um die Datei im Terminal auszugeben, statt sie zu schreiben: tar -xzOf backup.tar.gz src/config.yml.

Bevor du ein Archiv von jemand anderem entpackst, liste seinen Inhalt auf. Manche Archive haben keinen obersten Ordner und kippen Hunderte Dateien in den aktuellen Ordner, und vorhandene Dateien mit denselben Namen werden ohne Rückfrage überschrieben. Entpacke stattdessen in einen neuen, leeren Ordner: mkdir out, dann tar -xzf archive.tar.gz -C out. Um einen Download vorher zu prüfen, vergleiche seinen SHA-256 mit dem Hash-Generator oder sha256sum.

Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden