Archive entpacken unter Linux

Nahezu jeder Anwender, der mit Linux in Berührung kommt, wird ganz schnell über die für Linux typischen Archive stolpern. Zwar verfügen heutige Linux-Desktops meistens auch über ein grafisches Entpacker-Werkzeug, aber oft ist das zu umständlich und man möchte direkt vom Terminal aus arbeiten. Welche Archivarten gibt es also  – und wie packt man sie eigentlich aus?

Entpacken für Eilige

Falls du nach einer Anleitung gesucht hast, um nur schnell einmal etwas zum Dekomprimieren von Archiven unter Linux nachzuschlagen, findest du die wichtigsten Befehle in der folgenden Schnellübersicht:

|-------------------------------------------|
|- Schnellübersicht: Entpacken unter Linux -|
|-------------------------------------------|
Suffix:              Befehl:
 .tgz                tar -xvf archiv.tgz
                     bunzip2 archiv.tgz
 .tar.gz             tar -xvf archiv.tar.gz
                     bunzip2 archiv.tar.gz 
 .bz2                tar -xvfj archiv.bz2 
                     bunzip2 archiv.bz2
 .zip                unzip archiv.zip
 .7z                 7z x archiv.7z
 .lha                lha -x archiv.lha

Tar

Tar-Archive, oft auch als Tarballs bezeichnet, werden durch Konvertierung einer Gruppe von Dateien in ein Archiv erstellt. Diese Archive werden meist für die Sicherung oder Verteilung von Software verwendet. In Linux- und Unix-Systemen kannst du tar-Archive mit dem Befehl tar erstellen. Es unterstützt eine Vielzahl von Kompressionsprogrammen wie gzip, bzip2, lzip, lzma, lzop, xz und compress. Tar wurde ursprünglich für die Erstellung von Archiven zur Speicherung von Dateien auf Magnetbändern entwickelt, weshalb es auch „Tape ARchive“ genannt wird. Tar selbst komprimiert beim Packen allerdings nicht selbst, sondern verlässt sich auf externe Protokolle:

Gzip ist der am weitesten verbreitete Algorithmus zur Komprimierung von tar-Dateien. Konventionell sollte der Name eines mit gzip komprimierten tar-Archivs entweder mit .tar.gz oder .tgz enden.

Kurz gesagt, eine Datei, die auf .tar.gz endet, ist ein mit gzip komprimiertes .tar-Archiv.

Neben der Erstellung neuer Archive kann der tar-Befehl auch für verschiedene andere Operationen verwendet werden, z. B. zum Extrahieren von tar-Archiven, zum Anzeigen einer Liste der im Archiv enthaltenen Dateien und zum Hinzufügen zusätzlicher Dateien zu einem bestehenden Archiv.

In diesem Artikel erfährst du, wie du tar.gz- und tgz-Archive extrahieren (oder entpacken) kannst.

Entpacken einer tar.gz-Datei

Der Befehl tar ist bei den meisten Linux-Distributionen und macOS standardmäßig vorinstalliert.

Um eine tar.gz-Datei zu entpacken, verwendest du die Option –extract (-x) und gibst den Namen der Archivdatei nach der Option f an:

$ tar -xf archiv.tar.gz

Der Befehl tar erkennt automatisch den Komprimierungstyp und entpackt das Archiv. Du kannst den selben Befehl verwenden, um tar-Archive zu extrahieren, die mit anderen Algorithmen komprimiert wurden, z. B. .tar.bz2

Die Option -v macht den tar-Befehl gesprächiger und gibt die Namen der entpackten Dateien auf dem Terminal aus.

$ tar -xvf archiv.tar.gz

Standardmäßig extrahiert tar den Inhalt des Archivs in das aktuelle Arbeitsverzeichnis. Verwende die Option –directory (-C), um ein Verzeichnis anzugeben, in das du das Archiv entpacken möchtest.

Um zum Beispiel den Inhalt des Archivs in das Verzeichnis /home/micha/files zu entpacken, kannst du den folgenden Befehl verwenden:

$ tar -xf archive.tar.gz -C /home/micha/files

Extrahieren bestimmter Dateien aus einer tar.gz-Datei

Um nur bestimmte Dateien aus einem tar.gz-Archiv zu extrahieren, fügst du eine durch Leerzeichen getrennte Liste der Dateinamen hinter dem Archivnamen ein:

$ tar -xf archiv.tar.gz datei1 datei2

Extrahieren bestimmter Verzeichnisse aus einer tar.gz-Datei

Beim Extrahieren von Dateien musst du deren genaue Namen zusammen mit dem Pfad angeben, wie er von tar –list (tar -t) aufgelistet wird. Um ein oder mehrere Verzeichnisse aus einem Archiv zu extrahieren, kannst du den gleichen Prozess wie beim Extrahieren einzelner Dateien befolgen:

tar -xf archive.tar.gz dir1 dir2

Wenn du versuchst, eine Datei zu entpacken, die nicht existiert, erhältst du eine Fehlermeldung ähnlich der folgenden:

$ tar -xf archiv.tar.gz README

tar: README: Not found in archiv
tar: Exiting with failure status due to previous errors

Extrahieren bestimmter Dateien mittels Wildcard

Du kannst auch Dateien aus einer tar.gz-Datei anhand eines Platzhaltermusters (Wildcard) extrahieren, indem du die Option –wildcards verwenden und das Muster in Anführungszeichen setzt, um zu verhindern, dass die Shell es interpretiert.

Um beispielsweise Dateien zu extrahieren, deren Namen auf .js (Javascript-Dateien) enden, würdest du Folgendes verwenden:

$ tar -xf archiv.tar.gz --wildcards '*.js'

Entpacken einer tar.gz-Datei von stdin

Wenn du eine komprimierte tar.gz-Datei extrahieren, indem du das Archiv von stdin liest (normalerweise über eine Pipe), musst du die Dekomprimierungsoption angeben. Die Option, die tar anweist, die Archive durch gzip zu lesen, ist -z.

Im folgenden Beispiel laden wir die Quellen des Raytracing-Programms „Blender“ mit dem Befehl wget herunter und leiten dessen Ausgabe mittels einer Pipe zum Entpacken an den Befehl tar weiter:

$ wget -c https://download.blender.org/source/blender-4.0.2.tar.xz -O - | sudo tar -xz

Auflisten einer tar.gz-Datei

Um den Inhalt einer tar.gz-Datei aufzulisten, rufst du den Befehl tar mit der Option –list (-t) auf:

$ tar -tf archiv.tar.gz

Erweiterte Ausgabe

Wenn du die Option –verbose (-v) hinzufügen, gibt tar zusätzliche Informationen wie Dateiberechtigungen, Eigentümer, Größe und Zeitstempel aus.

$ tar -tvf archiv.tar.gz

Die Ausgabe könnte dann so aussehen:

-rw-r--r-- micha/Downloads       0 2023-12-15 01:19 file1
-rw-r--r-- micha/Downloads       0 2023-12-15 01:19 file2
-rw-r--r-- micha/Downloads       0 2023-12-15 01:19 file3

GNU unzip (gunzip)

Das Programm kommt zum Dekomprimieren von Archiven mit dem Suffix .gz zum Einsatz:

$ gunzip archiv.gz

bzip2

bzip2 ist die moderne Variante von gzip. Im Gegensatz zu gzip benutzt bzip2 einen anderen Algorithmus für das Komprimieren. In manchen Fällen kann es sein das dieser Algorithmus effektiver ist. Es dekomprimiert sowohl Archive mit dem Suffix .gz, als auch mit .bz2:

$ bunzip2 archiv.gz
$ bunzip2 archiv.bz2

 

ZIP

ZIP ist im Windows-Umfeld weit verbreitet und zieht daher natürlich auch seine Spuren in der Linux-Welt. Eventuell musst du das Paket Zip auf deinem System noch nachinstallieren (apt install zip unzip). ZIP-Archive haben den Suffix .zip und werden mit dem Programm unzip dekomprimiert:

$ unzip archiv.zip

7z

7z  zeichnet besonders der hocheffiziente LZMA-Algorithmus aus und kennt viele verschiedene Formate, darunter .zip, .lha, .rar und alle .tar-Formate. Verschlüsselungen mit zeitgemäßen AES-256 Bit sind überhaupt kein Problem. Der Standard-Suffix des Programms ist .7z – es muss allerdings erst nachinstalliert werden:

$ apt install p7zip p7zip-full p7zip-rar

7z-Archiv entpacken:

$ 7z x archiv.7z

7z-Archiv komprimiert erstellen:

$ 7z a archiv.7z Datei1 Ordner2 Datei3

7z-Archiv erstellen und mit einem Passwort schützen:

$ 7z a -p archiv.7z *

7z-Archiv auflisten:

$ 7z l archivname.7

LhA

Das Programm LhA ist vor allem für Anwender nützlich, die auf ihrem Linux-System einen Commodore Amiga emulieren und regelmäßig mit Archiven für diesen Computer zu tun haben. LhA-Archive sind auf dem Amiga der Standart und haben .lha als Suffix. Das Programm muss unter Linux erst nachinstalliert werden:

$ sudo apt install lhsa

LhA-Archive entpacken:

$ lha -x archiv.lha

LhA-Archive auflisten:

$ lha -l archiv.lha

$ lha -v archiv.lha

LhA-Archive testen:

$ lha -t archiv.lha

Du findest dieses Tutorial hilfreich? Dann freue ich mich über einen kleinen Obolus für meine IT-Kasse. Besten Dank!  🙂

[Zurück zur Übersicht]