Home / LinuxUser / 2000 / 08 / Zu Befehl

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 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.

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

Tip a friend    Druckansicht Bookmark and Share
Kommentare

1400 Hits
Wertung: 82 Punkte (8 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

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

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...