CLI AI

tar.gz, zip oder 7z unter Linux mit einem Befehl entpacken

2026-06-15

tar -xf archive.tar.gz entpackt tar, tar.gz, tar.bz2, tar.xz und tar.zst — modernes tar erkennt die Kompression am Inhalt der Datei, ganz ohne Flag. Die zweite Gewohnheit, die dir Ärger erspart: schau dir an, was in einem fremden Archiv steckt, bevor du es entpackst — ohne gemeinsamen obersten Ordner landet der Inhalt verstreut in deinem aktuellen Verzeichnis.

1. Erst reinschauen

clai
$ clai zeig mir, was in diesem Archiv steckt, ohne es zu entpacken→ tar -tf arch.tar.gz | head -4d/d/b/d/b/two-copy.txtd/a/

-t listet den Inhalt auf, statt ihn zu entpacken. Teilen sich alle Pfade einen gemeinsamen obersten Ordner, ist das Archiv sauber gebaut. Zeigt die Liste Pfade wie ./file1, ./file2 ohne gemeinsamen Ordner, verstreut das Entpacken alles in deinem aktuellen Verzeichnis.

2. Entpacken, ohne an die Kompression zu denken

clai
$ clai entpacke dieses Archiv→ tar -xf arch.tar.gz

Modernes GNU tar erkennt gzip, bzip2, xz und zstd am Inhalt der Datei. Die Flags z, j und J sind nur für ältere tar-Versionen und beim Erstellen eines Archivs relevant. Ein Befehl deckt jedes tar-basierte Format ab.

3. In ein eigenes Verzeichnis entpacken

clai
$ clai entpacke das Archiv in einen Ordner namens out→ mkdir -p out && tar -xf arch.tar.gz -C out

-C wechselt das Verzeichnis vor dem Entpacken. Das ist zugleich der Schutz vor der „Archivbombe" aus Abschnitt 1: auch ohne gemeinsamen obersten Ordner landet der Wirrwarr in out und nicht direkt vor deinen Füßen.

4. Eine einzelne Datei herausholen

clai
$ clai hol nur die Datei d/a/three.txt aus dem Archiv→ tar -xf arch.tar.gz d/a/three.txt

Gib den Pfad genau so an, wie er in der Ausgabe von tar -tf erscheint. Rate ihn nicht — kopiere ihn aus der Liste.

5. Andere Formate

clai
$ clai entpacke dieses zip in einen Ordner namens out→ unzip -d out archive.zip

unzip bekommt das Zielverzeichnis über -d, nicht über -C. Bei 7z heißt es 7z x archive.7z -oout — kein Leerzeichen nach -o, sonst wird es als Dateiname gelesen. Jedes Tool hat sein eigenes Flag für dieselbe Idee erfunden.

6. Grep im Archiv, ohne zu entpacken

clai
$ clai such nach dem Wort error im Archiv, ohne es zu entpacken→ tar -xzOf logs.tar.gz | grep -n 'error' | head

-O schreibt den Dateiinhalt in die Standardausgabe statt auf die Festplatte. Bei einem mehrere Gigabyte großen Log-Archiv ist das der Unterschied zwischen „sofort" und „erst mal 10 GB freien Speicher finden".

Fallstricke

  • Das Flag f muss in der Kombination als letztes stehen. tar -xfz versucht, z als Dateinamen zu nutzen. Schreib tar -xzf oder einfach tar -xf.
  • .tar.gz und .tgz sind dasselbe. Genauso .tar.bz2 und .tbz2. Die Endung entscheidet nichts — tar schaut auf den Inhalt.
  • Ein Archiv mit absoluten Pfaden ist gefährlich. Zeigt tar -tf Pfade, die mit / beginnen, kann das Entpacken Systemdateien überschreiben. Entpacke so ein Archiv nur mit -C in ein eigenes Verzeichnis, nachdem du die Liste geprüft hast.

Verwandte Fragen

Wie sehe ich die Dateigrößen in einem Archiv? tar -tvf archive.tar.gz — v fügt Rechte, Besitzer, Größe und Datum hinzu.

Warum zerlegt unzip Nicht-ASCII-Dateinamen? Die Namenskodierung in zip wurde nie standardisiert. unzip -O CP866 repariert Archive aus Windows mit kyrillischen Namen.

Wie entpacke ich mehrere Archive auf einmal? for f in *.tar.gz; do tar -xf "$f" -C "${f%.tar.gz}"; done, nachdem du die Verzeichnisse angelegt hast.

Siehe auch

CliAI schreibt den passenden Entpack-Befehl für jedes Archiv, das du ihm gibst, inklusive aller Flags. In einer Zeile installieren.