Zu_Befehl.gif

Getart und zugzipt! – gzip, bzip2 und tar

Zu Befehl

01.08.2000
Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Nicht nur beim Download von Dateien oder bei den HOWTOS findet man oft die Endungen .gz, .tar.gz oder .bz2. Was hinter diesen kryptischen Endungen steckt, erfahren Sie in dieser "Zu Befehl"-Folge: Es geht um das "Zusammen-" und "Auspacken" von Dateien und Verzeichnissen.

gzip-t und klein gemacht

Das Kommando gzip datei(en) reduziert die Größe von Dateien. Die komprimierte Datei heißt danach datei.gz und behält Zugriffs- und Besitzerrechte, Zugriffs- und Modifikationszeit. Ist der Dateiname zu lang für das Dateisystem, stutzt gzip die Sache zurecht – längere Teile des Dateinamens werden gekürzt. Möchte man ein komprimiertes File wiederherstellen, verwendet man gunzip oder gzip -d (für gzip --decompress), welches in der Tat das gleiche Programm ist. Möchte man die gepackte Datei hingegen nur betrachten, kann man den Aufruf zcat datei.gz (eventuell | less dranhängen oder direkt zless datei.gz verwenden) starten, was das gleiche ist wie gzip -c -d. Die Option -c bewirkt übrigens, daß die Datei nach stdout entkomprimiert wird.

Der Grad der Komprimierung hängt von der Größe des Inputs und der Verteilung gemeinsamer Zeichenketten ab, d. h. am besten komprimierbar sind Dateien, in denen sich gleichartige Datenmuster oft wiederholen. Bei einer Bitmap-Datei von 1,4 MB bleiben nach dem gzip-Aufruf beispielsweise nur noch 709 KB übrig. Verwendet man den Parameter gzip -9, ist die Datei nur noch 708 KB groß. Man kann also mit einer angehängten Ziffer von 1 bis 9 entscheiden, ob man lieber schneller komprimieren möchte (gzip -1) oder langsamer mit besserer Kompressionsrate (gzip -9).

gzip hat noch einige weitere Optionen, die interessant sind. Liegt im aktuellen Verzeichnis beispielsweise eine Datei mit gleichem Namen wie die zu entpackende Datei, fragt gzip netterweise nach:

huhn@huehnerstall ~ > gunzip datei.bmp.gz
gunzip: datei.bmp already exists; do you wish to overwrite (y or n)?

Will man die Frage umgehen, gibt es die Option gzip -f (für --force). Der Parameter "erzwingt" das Packen und Auspacken, selbst wenn bereits etwas mit gleichem Namen existiert. Interessant ist in diesem Zusammenhang das Verhalten von Symlinks. Normalerweise wird gzip es ablehnen, Symlinks zu komprimieren: gzip: link.bmp is not a directory or a regular file - ignored. Verwendet man die Option -f, wird die Datei, auf die der Link zeigt, komprimiert, bekommt aber den Namen des Links, also link.bmp.gz.

Natürlich hat das Kommando gzip noch mehr auf Lager – ein Blick in die Man-Page bietet da eine gute Übersicht. Möchte man sein eigenes gzip mit ein paar Optionen als Standard versehen, kann man diese in die Umgebungsvariable GZIP eintragen. Für die bash-Shell kann man seine eigenen Wunsch-Parameter z. B. so festlegen:

huhn@huehnerstall ~ > export GZIP="-9"
huhn@huehnerstall ~ > echo $GZIP
-9

Geht's noch kleiner?

Klar – hier kommt bzip2 ins Spiel. Dieses Programm komprimiert nicht nur besser als gzip, sondern auch wesentlich schneller. Darüber hinaus besitzt es einen recover-Modus, d. h. es versucht, eventuelle Schäden an komprimierten Dateien zu reparieren oder nur die nicht beschädigten Teile zu entpacken. Bevor es ins Detail geht: Sollte bzip2 nicht auf Ihrem System installiert sein, finden Sie unter http://sourceware.cygnus.com/bzip2/index.html nicht nur die Sourcen, sondern auch ausführliche Informationen zum Programm.

Die meisten Parameter funktionieren genauso wie bei gzip, einige weichen jedoch voneinander ab. Die Endung von komprimierten Dateien lautet hier .bz2, Zugriffsrechte und Timestamps bleiben ebenfalls erhalten. Auch hier gilt wieder: Überschreibschutz vorhanden! Versucht man beim Entpacken eine bereits existierende Datei zu ersetzen, kommt keine Abfrage wie bei gzip, sondern direkt die Meldung: bunzip2: Output file datei.bmp already exists, skipping. Möchte man dieses umgehen, gibt es wie bei gzip auch die Option -f (für --force).

Was ist anders bei bzip2? Es gibt eine Funktion, mit der man die zu komprimierenden Dateien nicht automatisch löscht, sondern eine Kopie erhalten bleibt – bzip2 -k (für --keep). Das Feature bzip2recover wurde schon erwähnt; was da im Hintergrund abläuft, ist spannend: bzip2 zerlegt Dateien beim Komprimieren in einzelne Blöcke. Sollte also ein File durch irgendetwas beschädigt werden, können eventuell Daten der intakt gebliebenen Pakete gerettet werden (siehe hierzu auch die Man-Page!).

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • gzip, bzip2 und tar
    Archivierungsprogramme gibt es wie Sand am Meer; die schnellsten Vertreter ihrer Art nutzen Sie auf der Kommandozeile: Mit kurzen Befehlen packen Sie Ihre Daten zusammen und wieder aus oder archivieren ganze Verzeichnishierarchien.
  • Gut verpackt
    Archivierungsprogramme gibt es wie Sand am Meer; die schnellsten Vertreter ihrer Art nutzen Sie auf der Kommandozeile: Mit kurzen Befehlen packen Sie Ihre Daten zusammen und wieder aus oder archivieren ganze Verzeichnishierarchien.
  • Verpackungskünstler
    Sparen Sie Platz: Mit einem Archivierungsprogramm fassen Sie mehrere Dateien zu einer einzigen zusammen, und mit einem Komprimierungs-Tool verkleinern Sie das Datenpaket. Wir zeigen, wie Sie zum Verpackungskünstler werden.
  • Suche in komprimierten Dateien und Archiven
    Über die Kommandozeile flink in komprimierten Dateien und Archiven zu suchen, spart viel Zeit. Die richtigen Tools dazu bringt praktisch jedes Linux-System von Haus aus mit.
  • Aktuelle Komprimierprogramme in der Übersicht
    Ob fürs Archiv oder für die Webseite zum Download: Alternativen zu Gzip und Bzip2 sparen noch mehr Platz oder arbeiten schneller.
Kommentare

Infos zur Publikation

LU 07/2015: Daten sichern

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Fernwartung oder wartung im haus
heide marie voigt, 29.06.2015 10:37, 2 Antworten
gerne hätte ich jemanden in Bremen nord, der mir weiter hilft - angebote bitte mit preis HMVoigt
Druckeranschluss DCP-195C
heide marie voigt, 29.06.2015 10:35, 1 Antworten
installiert ist linux ubuntu 15.04 offenbar auch der treiber für den Drucker DCP-195C. Die Konta...
keine arbeitsleiste beim einloggen
heide marie voigt, 27.06.2015 13:31, 0 Antworten
seit der neu-installierung von linux ubuntu 15.04 erscheint die arbeitsleiste rechts oben erst na...
raid platte an linux mint 17.1
andreas schug, 23.06.2015 19:44, 1 Antworten
folgende thematik NAS Iomega Storage Center wird auf einmal nicht mehr im netzwerk erkannt .....
SUSE 13.2 - Probleme mit kmail
kris kelvin, 03.06.2015 13:26, 2 Antworten
Hallo, nach dem Umstieg auf 13.1 hatte ich das Problem, daß kmail extrem langsam reagierte. Nun...