Archivformate: tar, gz, bz2, zip

 Zielgruppe: Einsteiger 

Im Internet findet man allerhand Archive in den unterschiedlichsten Formaten. Während das Paketformat "rpm" beispielsweise bei Red Hat, SuSE und Mandrake und "deb" bei auf Debian basierenden Distributionen verwendet wird, kann auf jedem Linux- und Unix-Rechner das Archivformat "tar" gepackt und entpackt werden. In diesem Dokument geht es um tar-Archive, die mit gzip oder bzip2 komprimiert worden sind und um zip-Archive, die aus der DOS/Windows-Welt bekannt sind.

Endung: "tar"
Archive mit der Endung "tar" sind reine Zusammenfassungen von Dateien. Es wird die Verzeichnisstruktur gespeichert, der Inhalt aber nicht komprimiert. Weiterhin werden in einem Tar-Archiv zu jeder Datei die Rechte und Eigentümer gespeichert. Daher ist "tar" das bevorzugte Archivformat unter Linux bzw. Unix.

Ein "tar"-Archiv wird mit folgendem Befehl ausgepackt:

tar xfv [ARCHIVNAME].tar

Die Optionen bedeuten folgendes: "x" steht für extract, also auspacken, "f" für file (aus einer Datei) und "v" für verbose (gesprächig). Verwendet man statt "x" ein "c" (create), kann man Verzeichnis und/oder Dateien einpacken und ein eigenes Archiv erzeugen.

tar cfv [ARCHIVNAME].tar [VERZEICHNIS1] [VERZEICHNIS2] [DATEI1] [DATEI2]

Möchtest du dir den Inhalt eines Archives auflisten lassen, so verwendest du den Schalter "t":

tar tfv [ARCHIVNAME].tar

Endung: "gz"
Eine Datei mit der Endung "gz" steht für eine mit gzip komprimierte Datei. Es kann jedoch nur eine einzige Datei komprimiert werden. Wenn du mehrere Dateien komprimieren möchtest, musst du aus diesen erst einmal ein Archiv erstellen (siehe oben). Der folgende Befehl komprimiert eine Datei:

gzip [DATEINAME]

Als Ergebnis erhält man die Datei namens "[DATEINAME].gz". Genauso einfach kann man diese wieder dekomprimieren:

gunzip [DATEINAME].gz

Das Ergebnis ist wieder der ursprüngliche Dateiname [DATEINAME]. Das tar-Kommando kann übrigens komprimierte Archive erzeugen bzw. entpacken:

tar cfvz [ARCHIV].tar.gz [VERZEICHNIS1] [DATEI1]
tar xfvz [ARCHIV].tar.gz

Manchmal findet man übrigens Archive mit der Endung "tgz". Das ist jedoch nichts anderes als "tar.gz".

Endung: "bz2"
Die Handhabung einer Datei mit der Endung "bz2" verhält sich ähnlich wie bei einer "gz"-Endung. Der Vorteil von "bz2" sind die bedeutend kleineren Dateien. Beim Linux-Kernel oder ISO-Images sind es einige MB. Der folgende Befehl komprimiert eine Datei:

bzip2 [DATEI]

Das Ergebnis ist eine Datei namens "[DATEI].bz2". Das Dekomprimieren funktioniert ähnlich:

bunzip2 [DATEI].bz2

Das tar-Kommando kann das Zusammenfassen und Komprimieren bzw. Dekomprimieren und Auspacken auch in einem Schritt erledigen:

tar cfvj [ARCHIV].tar.bz2 [VERZEICHNIS1] [DATEI1]
tar xfvj [ARCHIV].tar.bz2

Sollte das Entpacken einer *.tar.gz Datei mit dem tar-Kommando nicht funktionieren, gibt es auch noch eine andere, aber kompliziertere Möglichkeit:

gzip -dc [DATEI].tar.gz | tar xfv -

Der erste Befehl dekomprimiert die Datei und schickt das Ergebnis auf die sogenannte "Pipe". Das tar-Kommando greift sich von dieser "Pipe" die Daten und entpackt diese. Die "Pipe" kann man sich wie eine Zwischenablage vorstellen.

Hinweis: Wenn man beim Kommando "tar" ein Minus vor die Optionen setzt, dann wird die Angabe für den Dateinamen ("f") als letztes erwartet, z. B. "tar -xvzf datei.tgz". Andernfalls gibt es eine Fehlermeldung.

Endung: "zip"
ZIP-Dateien wurden und werden noch immer hauptsächlich unter DOS bzw. Windows verwendet. Zum Datenaustausch zwischen Linux und Windows sollte dieses Format bevorzugt werden. Der folgende Befehl komprimiert einzelne Dateien:

zip [ARCHIV].zip [DATEI1] [DATEI2]

Möchte man hingegen Dateien in einer kompletten Verzeichnisstruktur archivieren, so lautet das Kommando:

zip -r [ARCHIV].zip [VERZEICHNIS1] [VERZEICHNIS2]

Mit dem folgenden Befehl kann man sich den Inhalt eines ZIP-Archivs ausgeben lassen:

unzip -l [ARCHIV].zip

Zuguterletzt kann ein ZIP-Archiv auch wieder entpackt werden:

unzip [ARCHIV].zip

Der ZIP-Algorithmus wird beispielsweise von OpenOffice.org verwendet, um die XML-Daten zu komprimieren.