[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [http://www.gzip.org gzip] {en} steht für '''G'''NU '''zip''' und ist unter Linux - neben [:bzip2:] - wohl die am häufigsten genutzte Komprimierungsmethode. Mit gzip gepackte Dateien haben in der Regel die Dateiendung '''.gz'''. Zum Entpacken von gzip-Archiven kann der Befehl `gunzip` eingesetzt werden. gunzip kennt die gleichen Optionen wie gzip und ist im Prinzip nichts anderes als der Aufruf von gzip mit der Option zum Entpacken (Details [#gz_opt siehe unten]). Daher wird im Folgenden nur gzip behandelt. {{{#!vorlage Hinweis Zu beachten ist, das `gzip` nur __einzelne__ Dateien packen kann. Für Archive mit mehreren Dateien sind diese z.B. vorher mittels [:tar:] zusammenzufassen und dann die entstehende Archivdatei zu packen. }}} = Syntax = Die allgemeine Syntax von gzip lautet [1]: {{{#!vorlage Befehl gzip OPTIONEN Datei(en) }}} So erzeugt z.B. der Aufruf von {{{#!vorlage Befehl gzip eine_datei.txt }}} das Archiv '''eine_datei.txt.gz'''. Ruft man gzip mit mehreren Dateien auf {{{#!vorlage Befehl gzip datei_1.txt datei_2.txt datei_3.txt }}} so entstehen drei gz-Archive '''datei_1.txt.gz''', '''datei_2.txt.gz''' und '''datei_3.txt.gz'''. {{{#!vorlage Hinweis Beim Packen einer Datei mit gzip wird standardmäßig die Originaldatei gelöscht, d.h. es existiert nur noch das Archiv. Umgekehrt wird beim Entpacken das Archiv gelöscht und es existiert nur noch die Originaldatei. Dies lässt sich mit der Option `-k` deaktivieren. }}} [[Anker(gz_opt)]] = Optionen = gzip kennt verschiedene Optionen, von denen im Folgenden einige erklärt werden: || Option || Beschreibung || ||``-1`` ... -``9``||Gibt den Komprimierungsgrad an. `1` ist die schlechteste aber schnellste Komprimierung, `9` die beste aber langsamste Komprimierung. Voreinstellung ist `5`.|| ||``-r``||Dateien werden ''einzeln'' rekursiv in allen Unterverzeichnissen komprimiert bzw. dekomprimiert.|| ||``-f``||Eventuell vorhandene Dateien werden ohne Rückfrage überschrieben.|| ||``-d``||Decompress, d.h. die angegebene Datei (Archiv) wird in das aktuelle Verzeichnis entpackt.|| ||``-k``||Die Originaldatei wird beibehalten und nicht gelöscht. || ||``-l``||Gibt Details zum Archiv aus, wie z.B. Kompressionsrate, Größe der unkomprimierten Datei etc.|| ||``-c``||Schreibt auf die Standardausgabe (also in der Regel den Bildschirm).|| ||``-q``||Unterdrückt alle (Warn-) Meldungen. Dies ist hilfreich, wenn eine größere Datei [:Shell/Prozesssteuerung:im Hintergrund] ge- bzw. entpackt werden soll.|| ||``-t``||Testet die Integrität des Archivs.|| ||``-h``||Zeigt eine vollständige Übersicht über alle Optionen.|| Eine detaillierte Beschreibung erhält man auch in den [:man:man-Pages] oder [:info:info-Seiten] zu gzip. [[Anker(bsp)]] = Einige Beispiele = 1. Es wird eine Datei entpackt. Da keine weiteren Angaben gemacht werden, befindet sich die entpackte Datei '''archiv.txt''' im aktuellen Verzeichnis (von dem aus gzip aufgerufen wurde): {{{#!vorlage Befehl gzip -d archiv.txt.gz }}} 1. Es wird eine Datei auf die Standardausgabe entpackt und mit [:Shell/grep:grep] nach einer Zeichenkette durchsucht. Dabei kommt eine [:Shell/Umleitungen:Pipeline] zum Einsatz {{{#!vorlage Befehl gzip -cd archiv.txt.gz | grep ZEICHENKETTE }}} = gzexe = Mit Hilfe von `gzexe` lassen sich selbstextrahierende Archive erzeugen. Dies ist besonders für (größere) Programme oder Skripte geeignet, da diese nach dem Entpacken direkt ausgeführt werden. Da Informationen für das Entpacken in die Datei (Archiv) mit integriert werden, lohnt sich gzexe nur für größere Programme, da bei kleineren Dateien das gepackte, selbstextrahierende Archive sonst größer wäre als die Originaldatei selbst. Die allgemeine Syntax von gzexe lautet: {{{#!vorlage Befehl gzexe datei }}} gzexe kennt nur eine Option: ||Option || Beschreibung || ||``-d``||Entpackt das selbstextrahierende Archiv.|| {{{#!vorlage Hinweis In das selbstextrahierende Archiv wird nicht der Dekomprimierungsalgorithmus an sich integriert, sondern es wird ein (kurzes) Shellskript in die Datei integriert, welche gzip aufruft. Daher funktioniert das Selbstextrahieren nur auf Systemen, auf denen gzip über die Standardsuchpfade gefunden wird. Dies sollte jedoch bei den meisten Linuxsystemen der Fall sein. }}} [[Anker(ztools)]] = Programme für gepackte Archive = Es gibt eine Reihe von Programme, die das Anschauen bzw. Durchsuchen von '''.gz'''-Archiven im Terminal vereinfachen. Die vorhandenen Tools sind in der Standardinstallation von Ubuntu: * `zcat`, `zcmp`, `zdiff`, `zdump`, `zegrep`, `zgrep`, `zfgrep`, `zforce`, `zless` und `zmore` Wie man sieht, leiten sich die Namen von den entsprechenden [:Shell/Befehlsübersicht:Shell-Befehlen] ab und haben grundsätzlich auch die gleiche Funktionalität. Unter Umständen stehen aber nicht alle Optionen des "Original"-Befehls zur Verfügung. = Links = * [:bzip2:] - Alternative zu gzip * [http://zlib.net/pigz/ pigz] {en} - gzip für Mehrkern-Prozessoren * [:Packprogramme:] {Übersicht} Übersichtsartikel # tag: Shell, Packer, gz, Komprimierung, Archivmanager, Datensicherung