Home / LinuxUser / 2000 / 08 / Zu Befehl

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(220 Punkte bei 8 Stimmen)
KDE 4.10.2, Gnome 3.6 und mehr
(143 Punkte bei 5 Stimmen)
Google schmeißt Jabber raus ...
(121 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

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!).

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1198 Hits
Wertung: 82 Punkte (8 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2013_06

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Emacs als Psychologe
Emacs als Psychologe
Tim Schürmann, 21.05.2013 11:49, 0 Kommentare

Wer beim Schreiben in Emacs nicht mehr weiter weiß oder schier an einer Programmieraufgabe verzweifelt, der kann den eingebauten Psychologen um Rat fragen.

1966 entwickelte der Infor...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...