claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 07/2004   »   Ausgabe bestellen

tar, zip & Co.

Komprimierungskünstler

von Heike Jurzik


Ob Sie Daten übertragen oder die Festplatte aufräumen wollen -- Tools zur Archivierung und Komprimierung von Daten sind immer hilfreich. Wir zeigen, wie Sie Ihre Dateien ein- und wieder auspacken.

Wer Dateien zu Archiven zusammenpackt und diese komprimiert, spart Plattenplatz und Bandbreite. Das mag zwar in Zeiten von DSL und großen Festplatten überflüssig erscheinen, sorgt aber für mehr Übersicht. Es ist z. B. weitaus praktischer, die Urlaubsfotos als gepacktes Archiv zu verschicken, als jedes Bild einzeln als Attachment an die E-Mail anzuhängen.

Unter Linux stehen Ihnen zahlreiche Tools zur Verfügung, die einpacken und/oder komprimieren und auch wieder auspacken. Neben den grafischen Programmen wie File Roller und KArchiver (Abbildung 1) gibt es aber auch zahlreiche Möglichkeiten, auf der Kommandozeile Archive anzulegen, einfach hineinzuschauen und sie wieder auszupacken. Tabelle 1 zeigt die gängigsten Dateiendungen und ihre Bedeutung.

Abb. 1: File-Roller und KArchiver im Einsatz.

Tabelle 1: Werkzeuge zum Archivieren
.zip Mit WinZIP (Windows), PKZIP (DOS) oder zip (Unix) komprimierte Datei oder Archiv
.gz Mit gzip komprimierte Datei
.bz2 Mit bzip2 komprimierte Datei
.tar Ein tar-Archiv
.tar.gz/.tgz Ein mit gzip komprimiertes tar-Archiv
.tar.bz2 Ein mit bzip2 komprimiertes tar-Archiv

Gut zusammengepackt

Das Programm zip komprimiert und archiviert. Neben der recht einfachen Bedienung (der Kommandozeilenaufruf lässt sich schneller tippen als der tar-Befehl mit den entsprechenden Optionen), war es früher vor allem die Kompatibilität mit Programmen wie WinZIP und PKZIP, die für zip sprach. Spätestens seit WinZIP aber auch tar-Archive und mit gzip komprimierte Daten auspacken kann, ist dieses Argument hinfällig. Unter Linux sind mit gzip komprimierte tar-Archive (.tar.gz oder .tgz, siehe Abschnitt zu tar) der Standard.

Um ein Zip-Archiv anzulegen, tippen Sie

zip archiv_name datei(en)

Das Archiv erhält dabei automatisch die Dateiendung .zip. Wer ein ganzes Verzeichnis mit eventuellen Unterverzeichnissen zusammenfassen möchte, gibt zip die Option -r (für "rekursiv") mit, also z. B.:

$ zip -r easy_archiv 06/
updating: 06/ (stored 0%)
  adding: 06/noteedit/ (stored 0%)
  adding: 06/noteedit/ne_start.png (deflated 4%)
  adding: 06/noteedit/noteedit.html (deflated 62%)
[...]

Beim Auspacken dieser Archive hilft das Programm unzip. Netterweise ist hier eine Sicherheitsabfrage eingebaut -- wenn Sie ein Archiv entpacken und im gleichen Verzeichnis bereits Dateien mit gleichem Namen liegen, warnt das Programm:

$ unzip archiv.zip
Archive:  archiv.zip
replace datei.jpg? [y]es, [n]o, [A]ll, [N]one, [r]ename: 

Tippen Sie (jeweils gefolgt von [Return]) y, wenn Sie die betroffene Datei überschreiben wollen, n, wenn Sie die Datei überspringen möchten. Soll unzip alle im Verzeichnis liegenden Dateien überschreiben, tippen Sie A, soll keine überschrieben werden, geben Sie N ein. Um der Datei, die ausgepackt werden soll, einen neuen Namen zu geben, wählen Sie r, dann zeigt unzip einen Prompt (new name:), an dem Sie den neuen Dateinamen eingeben und mit [Return] bestätigen.

Gezippt und zugenäht!

Das Programm gzip (GNU Zip) ist der "Standardpacker" unter Linux. Anders als zip legt dieses Programm allerdings keine Archive an, sondern komprimiert nur normale Dateien. Der Programmaufruf lautet:

gzip datei

Das Programm ersetzt die Originaldatei dabei durch eine komprimierte Datei mit der Endung .gz. Wie stark gzip komprimiert, hängt unter anderem von der Verteilung gemeinsamer Zeichenketten in der Originaldatei ab. Am besten komprimierbar sind daher Dateien, in denen sich ähnliche Muster wiederholen. Dateien, die in bereits komprimierten Datenformaten, wie z. B. JPEG oder MP3, vorliegen, werden durch den Einsatz von gzip nicht großartig kleiner. Eine Bitmap-Datei (bmp) hingegen, die im Original 1,6 MByte groß ist, lässt gzip auf 452 KByte zusammenschrumpfen.

Wie stark und schnell gzip komprimiert, können Sie dem Programm durch die angehängte Ziffer (1 bis 9) mitteilen. Dabei arbeitet gzip -1 am schnellsten aber mit niedrigster Kompressionsrate; gzip -9 arbeitet am effektivsten, braucht aber länger.

Zum Auspacken verwenden Sie entsprechend

gunzip datei.gz
-- auch hier fragt das Programm nach, ob Sie eine bereits vorhandene Datei im gleichen Verzeichnis überschreiben möchten:

gunzip: datei.bmp already exists; do you wish to overwrite (y or n)?

Geht's noch kleiner?

Das Programm bzip2 komprimiert besser als gzip, braucht aber auf älteren Systemen oft etwas länger. Die 1,6 MByte große Beispieldatei von oben schrumpft nach der Komprimierung mit bzip2 auf nur 332 KByte zusammen. Zugrunde liegt ein anderer Kompressionsalgorithmus, der die Dateien beim Komprimieren zusätzlich in einzelne Blöcke zerlegt. Dieses Verfahren bringt gleich noch ein tolles Feature mit: bzip2 besitzt einen "Recover"-Modus (engl.: "retten"), der im Zweifelsfall zunächst versucht, mögliche Schäden an komprimierten Dateien zu reparieren. Falls dies fehlschlägt, versucht bzip2, die nicht beschädigten Blöcke zu dekomprimieren.

Um eine Datei mit bzip2 zu packen, verwenden Sie den Befehl

bzip2 datei

Die komprimierte Datei trägt die Endung .bz2. Das Auspacken funktioniert entsprechend mit bunzip2. Der Überschreibschutz sieht hier allerdings etwas anders aus -- bzip2 weigert sich einfach, eine Datei gleichen Namens zu überschreiben:

bunzip2: Output file datei.bmp already exists.

Abhilfe schafft die Option -f (englisch: force, zwingen). Setzen Sie diesen Parameter aber nur ein, wenn Sie sicher sind, dass keine Daten verloren gehen können.

Archivar

Der Name tar kommt vom englischen "tape archiver" -- das Programm wurde ursprünglich bei der Verwaltung von Streamer-Bändern benutzt. Diese sind zwar als Backup-Medien heute nicht mehr so verbreitet, tar wird aber immer noch zum Archivieren eingesetzt. Um mehrere Dateien zu einem Archiv zusammenzupacken, geben Sie

tar -cvf archiv.tar datei1 datei2...

ein. Die Optionen, die auch alle einzeln gelistet werden könnten (tar -c -v -f ...), bedeuten Folgendes:

An eine bereits existierende Archivdatei können Sie weitere Dateien anhängen -- das ist praktisch, wenn man mal etwas vergessen hat:

tar -r neuedatei -f archiv.tar

Zum Entpacken verwenden Sie die Option -x. Achten Sie darauf, dass Sie keine Dateien im gleichen Verzeichnis überschreiben. tar bringt für alle Fälle einen Parameter -t mit, der vorher den Inhalt des Archivs auflistet:

$ tar -tf test.tar
petronella.bmp
petronella.png
Nemo.jpg

Auch bei diesem Aufruf können Sie die Option -v ergänzen, dann ähnelt die Inhaltsangabe einem langen Verzeichnis-Listing (ls -l).

Getart und klein gemacht

Standardmäßig komprimiert tar die Archive nicht. Das Programm bietet allerdings Parameter, mit denen Sie in einem Rutsch zusammenpacken und komprimieren können. Wer das tar-Archiv mit gzip komprimieren möchte, verwendet dazu:

tar -czvf archiv.tar.gz datei(en)

Das ist eine Kurzform der zwei Befehle

tar -cvf archiv.tar datei(en)
gzip archiv.tar

Dies ist vor allem dann empfehlenswert, wenn Sie das Archiv später mit WinZIP entpacken möchten. Wer darauf keinen Wert legt und lieber den besseren Kompressionsalgorithmus von bzip2 verwenden möchte, wählt stattdessen:

tar -cjvf archiv.tar datei(en)

Die Option -j (statt -z weiter oben) führt zum Aufruf von bzip2, so dass diese Zeile wieder eine Kurzform ist -- diesmal für die beiden Befehle

tar -cvf archiv.tar datei(en)
bzip2 archiv.tar

Das Archiv hat anschließend entweder die Endung .gz oder .bz2 -- anstelle von .tar.gz findet man auch häufig die Endung .tgz. (Das dürfte mit der langsam verschwindenden Tradition zusammenhängen, nach der wegen der Kompatibilität mit MS-DOS Dateiendungen maximal drei Zeichen erhalten.)

Viele Linux-Programme werden in diesen so genannten "Tar-Balls" zum Selbstkompilieren im Internet angeboten. Um diese komprimierten Archive auszupacken, tippen Sie:

tar -xzvf archiv.tar.gz
bzw. für bzip2-komprimierte Archive
tar -xjvf archiv.tar.bz2

Ersetzen Sie das -x durch -t, können Sie auch einen schnellen Blick auf den Inhalt des Archivs werfen. (hge)

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-01-25 17:15

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]