GZIP(1) | General Commands Manual | GZIP(1) |
gzip, gunzip, zcat - Dateien komprimieren und expandieren
gzip [ -acdfhklLnNrtvV19 ]
[-S Endung] [ Name … ]
gunzip [ -acfhklLnNrtvV ] [-S Endung] [
Name … ]
zcat [ -fhLV ] [ Name … ]
Der Befehl gzip verringert die Größe der genannten Dateien unter Benutzung der Lempel-Ziv-Kodierung (LZ77). Nach Möglichkeit wird jede Datei durch eine mit der Endung .gz, ersetzt, während die Besitzrechtemodi, Zugriffs- und Änderungszeiten beibehalten werden. (Die Standardendung ist z für MSDOS, OS/2-FAT, Windows-NT-FAT and Atari.) Falls keine Dateien angegeben sind oder ein Dateiname »-« lautet, wird die Standardeingabe komprimiert an die Standardausgabe gesandt. Der Befehl gzip wird nur versuchen, reguläre Dateien zu komprimieren. Insbesondere wird es symbolische Links ignorieren.
Falls der Name der komprimierten Datei für das Dateisystem zu lang ist, kürzt gzip ihn. Der Befehl gzip versucht nur die Teile des Dateinamens zu kürzen, die länger als drei Zeichen sind. (Ein Teil wird durch Punkte begrenzt.) Falls der Name nur kurze Teile enthält, werden die längsten Teile gekürzt. Falls Dateinamen zum Beispiel auf 14 Zeichen begrenzt sind, wird gzip.msdos.exe zu gzi.msd.exe.gz komprimiert. Namen werden nicht auf Systemen gekürzt, die keine Begrenzung für die Länge von Dateinamen haben.
Standardmäßig behält gzip den Originaldateinamen und den Zeitstempel in der komprimierten Datei. Diese werden benutzt, wenn die Datei mit der Option -N dekomprimiert wird. Dies ist nützlich, wenn der komprimierte Dateiname gekürzt wurde oder wenn der Zeitstempel nach einer Dateiübertragung nicht aufbewahrt wurde.
Komprimierte Dateien können wieder unter Benutzung von gzip -d, gunzip(1) oder zcat(1) zu ihrer Originalform hergestellt werden. Falls der Originalname, der in der komprimierten Datei gespeichert wurde, nicht für das Dateisystem geeignet ist, wird ein neuer Name aus dem des Originals konstruiert, damit er zulässig wird.
gunzip nimmt auf der Befehlszeile eine Liste von Dateien entgegen und ersetzt jede Datei, deren Name auf .gz, -gz, .z, -z, oder _z endet (Groß- und Kleinschreibung wird ignoriert) und die mit der korrekten magischen Zahl mit einer nicht komprimierten Datei ohne die Originalendung beginnt. gunzip erkennt außerdem die Spezialendungen .tgz und .taz als Kürzel für .tar.gz beziehungsweise .tar.Z. Beim Komprimieren benutzt gzip, falls nötig, die Endung .tgz anstatt eine Datei mit einer .tar-Endung zu kürzen.
gunzip kann derzeit Dateien dekomprimieren, die mittels gzip, zip(1), compress(1), compress -H oder pack(1) erstellt wurden. Das Eingabeformat wird automatisch festgestellt. Wenn die ersten beiden Formate benutzt werden, prüft gunzip einen 32-Bit-CRC. Für pack(1) prüft gunzip die unkomprimierte Länge. Das Standard-compress-Format wurde nicht entworfen, um Konsistenzprüfungen zu ermöglichen. gunzip kann jedoch manchmal eine fehlerhafte .Z-Datei erkennen. Falls Sie beim Dekomprimieren einer .Z-Datei einen Fehler erhalten, gehen Sie nicht davon aus, dass die .Z-Datei korrekt ist, nur weil der Standard-uncompress-Befehl dies nicht bemängelt. Dies bedeutet im Allgemeinen, dass der Standard-uncompress-Befehl seine Eingabe nicht prüft und fröhlich Datenmüll ausgibt. Das SCO-Format »compress -H« (LZH-Komprimierungsmethode) enthält keinen CRC, ermöglich aber ebenso einige Konsistenzprüfungen.
Dateien, die durch zip erstellt wurden, können nur durch gzip dekomprimiert werden, wenn sie ein einziges Element haben, das mit der Deflationsmethode komprimiert wurde. Diese Funktion ist nur dazu gedacht, zu helfen, tar.zip-Dateien in das tar.gz-Format umzuwandeln. Benutzen Sie einen Befehl wie gunzip <foo.zip oder gunzip -S .zip foo.zip, um eine zip-Datei mit einem einzigen Element zu extrahieren. Um zip-Dateien mit mehreren Elementen zu extrahieren, benutzen Sie unzip(1) anstelle von gunzip.
zcat ist mit gunzip -c identisch. (Auf einigen Systemen könnte zcat als gzcat installiert sein, um den Originalverweis auf compress zu bewahren.) zcat dekomprimiert entweder eine Liste von Dateien auf der Befehlszeile oder seiner Standardeingabe und schreibt die dekomprimierten Daten auf die Standardausgabe. zcat wird Dateien dekomprimieren, die die korrekte magische Zahl haben, unabhängig davon, ob sie eine .gz-Endung haben oder nicht.
Der Befehl gzip benutzt in zip und PKZIP den Lempel-Ziv-Algorithmus. Der erhaltene Komprimierungsgrad hängt von der Größe der Eingabe und der Verteilung der üblichen Teilzeichenfolgen ab. Typischerweise wird Text, wie Quellkode oder Englisch, um 60-70% reduziert. Komprimierung wird im Allgemeinen viel besser als bei LZW (wie sie in compress benutzt wird), Huffman-Kodierung (wie sie in pack benutzt wird) oder angepasster Huffman-Kodierung (compact) erreicht.
Komprimierung wird immer durchgeführt, sogar, wenn die komprimierte Datei nur unwesentlich kleiner als das Original ist. Im schlimmsten Fall besteht die Expansion aus wenigen Byte für den Gzip-Datei-Header, plus fünf Byte je 32K-Block oder einer Expansionsrate von 0,015% für große Dateien. Die tatsächliche Anzahl benutzter Plattenblöcke erhöht sich fast nie.
gzip bewahrt beim Komprimieren und Dekomprimieren den Modus und den Änderungs-Zeitstempel der Datei. Falls Sie über die entsprechenden Privilegien verfügen, wird auch der Besitzer und die Gruppe der Datei bewahrt.
komprimierte Größe: Größe der komprimierten
Datei
unkomprimierte Größe: Größe der
unkomprimierten Datei
Rate: Komprimierungsrate (0.0%, falls nicht bekannt)
unkomprimierter Name: Name der unkomprimierten Datei
Die unkomprimierte Größe wird für Dateien, die nicht im Gzip-Format vorliegen, wie komprimierten .Z-Dateien, mit -1 angegeben. Um die unkomprimierte Größe einer solchen Datei zu ermitteln, können Sie Folgendes benutzen:
zcat Datei.Z | wc -c
In Kombination mit der Option --verbose werden ebenso die folgenden Felder angezeigt:
Methode: Komprimierungsmethode
CRC: der 32-Bit-CRC der unkomprimierten Daten
Datum & Zeit: Zeitstempel für die unkomprimierte Datei
Die derzeit unterstützten Komprimierungsmethoden sind Deflate, Compress, LZH (SCOs »compress -H«) und Pack. Der CRC wird für eine Datei, die nicht im Gzip-Format vorliegt, als ffffffff angegeben.
Mit --name sind der unkomprimierte Name, Datum und Zeit diejenigen, die innerhalb der komprimierten Datei gespeichert sind, falls vorhanden.
Mit --verbose wird außerdem die Gesamtgröße und Komprimierungsrate für alle Dateien angezeigt. Mit --quiet werden der Titel und die Summenzeilen nicht angezeigt.
Beim Dekomprimieren wird .suf an den Anfang der Liste von auszuprobierenden Endungen gestellt, wenn ein Dateiname für die Ausgabe aus einem Dateinamen der Eingabe abgeleitet wird.
Mehrere komprimierte Dateien können aneinandergehängt werden. In diesem Fall wird gunzip alle Elemente auf einmal extrahieren. Zum Beispiel:
gzip -c Datei1 > foo.gz
gzip -c Datei2 >> foo.gz
dann ist
gunzip -c foo
gleichbedeutend mit
cat Datei1 Datei2
Im Fall, dass ein Element einer .gz-Datei beschädigt ist, können andere Elemente immer noch wiederhergestellt werden (falls das beschädigte Element entfernt wurde). Sie können jedoch eine bessere Komprimierung bekommen, wenn Sie alle Elemente auf einmal komprimieren.
cat Datei1 Datei2 | gzip > foo.gz
komprimiert besser als
gzip -c Datei1 Datei2 > foo.gz
Falls Sie zusammengehängte Dateien erneut komprimieren möchten, um eine bessere Komprimierung zu erhalten, tun Sie Folgendes:
gzip -cd alt.gz | gzip > neu.gz
Falls eine komprimierte Datei aus mehreren Elementen besteht, gilt die unkomprimierte Größe und der CRC, der durch die Option --list gemeldet wird, nur für das letzte Element. Falls Sie die unkomprimierte Größe aller Elemente benötigen, können Sie Folgendes nutzen:
gzip -cd Datei.gz | wc -c
Falls Sie eine einzelne Archivdatei mit mehreren Elementen so erstellen möchten, dass Elemente später unabhängig voneinander extrahiert werden können, benutzen Sie ein Archivierungsprogramm wie tar(1) oder zip(1). GNU Tar unterstützt die Option -z, um gzip transparent aufzurufen. gzip wurde als eine Ergänzung zu tar entworfen, nicht als ein Ersatz.
Die veraltete Umgebungsvariable GZIP kann einen Satz Vorgabeoptionen für gzip enthalten. Diese Optionen werden zuerst interpretiert und können durch Befehlszeilenparameter explizit außer Kraft gesetzt werden. Da dies zu Problemen beim Einsatz von Skripten führen kann, wird dies nur für Optionen unterstützt, die vernünftigerweise nicht zu viel Schaden anrichten können und gzip warnt, falls sie verwandt wird. Diese Funktionalität wird in einer zukünftigen Version von gzip entfernt.
Sie können stattdessen einen Alias oder ein Skript benutzen. Falls beispielsweise gzip im Verzeichnis /usr/bin ist, können Sie $HOME/bin vor Ihr PATH hängen und ein ausführbares Skript $HOME/bin/gzip erstellen, das Folgendes enthält:
#! /bin/sh
export PATH=/usr/bin
exec gzip -9 "$@"
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1)
Das gzip-Dateiformat ist in der Dateiformatspezifikation P. Deutsch, GZIP Version 4.3, https://www.ietf.org/rfc/rfc1952.txt, Internet RFC 1952 (Mai 1996) spezifiziert. Das zip-Deflationsformat ist in der Kompressionsdaten-Formatspezifikation P. Deutsch, DEFLATE Version 1.3, https://www.ietf.org/rfc/rfc1951.txt, Internet RFC 1951 (Mai 1996) spezifiziert.
Exit-Status ist normalerweise 0; falls ein Fehler auftritt, ist der Status 1. Falls eine Warnung auftritt, ist der Exit-Status 2.
zcat Datei > recover
Wenn komprimierte Daten auf ein Band geschrieben werden, ist es generell nötig, die Ausgabe mit Nullen bis zur Blockgrenze aufzufüllen. Wenn die Daten gelesen werden und der ganze Block zum Dekomprimieren an gunzip geleitet worden ist, stellt gunzip fest, dass es dort zusätzlich anhängenden Müll nach dem komprimierten Daten gibt und gibt standardmäßig eine Warnung aus. Sie können die Option --quit verwenden, um die Warnung zu unterdrücken.
In einigen seltenen Fällen ergab die Option --best schlechtere Komprimierung als die Standardkomprimierungsstufe (-6). Auf einigen hoch redundanten Dateien komprimiert compress(1) besser als gzip.
Melden Sie Fehler (auf Englisch) an
bug-gzip@gnu.org
Webseite von GNU gzip:
https://www.gnu.org/software/gzip/
Allgemeine Hilfe zur Benutzung von GNU-Software:
https://www.gnu.org/gethelp/
Copyright © 1998-1999, 2001-2002, 2012, 2015-2022 Free
Software Foundation, Inc.
Copyright © 1992, 1993 Jean-loup Gailly
Das Recht, wortgetreue Kopien dieses Handbuchs zu erstellen und weiterzugeben, wird gewährt, wenn der Copyright- und Genehmigungshinweis in allen Kopien beibehalten wird.
Das Recht, veränderte Versionen dieses Handbuchs zu erstellen und weiterzugeben, wird unter den Bedingungen für wortgetreues Kopieren gewährt, wenn die gesamte resultierende abgeleitete Arbeit unter den Bedingungen eines Genehmigungshinweises, der diesem identisch ist, weitergegeben wird.
Das Recht, Übersetzungen dieses Handbuchs in eine andere Sprache zu erstellen und weiterzugeben, wird unter den vorhergehenden Bedingungen für veränderte Versionen gewährt, mit der Ausnahme, dass dieser Genehmigungshinweis in einer durch die Foundation genehmigten Übersetzung genannt werden könnte.
Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <c.leick@vollbio.de>, Helge Kreutzmann <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
lokal |