Scroll to navigation

GZIP(1) General Commands Manual GZIP(1)

BEZEICHNUNG

gzip, gunzip, zcat - Dateien komprimieren und expandieren

ÜBERSICHT

gzip [ -acdfhklLnNrtvV19 ] [-S Endung] [ Name … ]
gunzip [ -acfhklLnNrtvV ] [-S Endung] [ Name … ]
zcat [ -fhLV ] [ Name … ]

BESCHREIBUNG

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.

OPTIONEN

ASCII-Textmodus; wandelt Zeilenenden unter Benutzung lokaler Konventionen um. Diese Option wird nur auf einigen Nicht-Unix-Systemen unterstützt. Für MSDOS wird »CR LF« beim Komprimieren in »LF« umgewandelt und »LF« wird beim Dekomprimieren in »CR LF« umgewandelt.
schreibt die Ausgabe auf die Standardausgabe; lässt die Originaldateien unverändert. Falls es dort mehrere Eingabedateien gibt, besteht die Ausgabe aus einer Sequenz unabhängig komprimierter Elemente. Um eine bessere Komprimierung zu erhalten, hängen Sie alle Eingabedateien aneinander, bevor Sie sie komprimieren.
dekomprimpiert.
erzwingt Komprimierung und Dekomprimierung sogar dann, wenn die Datei mehrere Verweise hat, die entsprechende Datei bereits existiert oder die komprimierten Daten von einem Terminal gelesen oder auf ein Terminal geschrieben werden. Falls die Eingabedaten in einem Format vorliegen, das nicht von gzip erkannt wird, und außerdem die Option --stdout angegeben ist, werden die Eingabedaten ohne Änderung auf die Standardausgabe kopiert: lässt zcat sich verhalten wie cat. Falls -f nicht angegeben ist und wenn es nicht im Hintergrund ausgeführt wird, fragt gzip nach, ob eine existierende Datei überschrieben werden soll.
zeigt eine Hilfe an und beendet das Programm.
behält (löscht keine) Eingabedateien während der Komprimierung oder Dekomprimierung.
listet für jede komprimierte Datei die folgenden Felder auf:


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.

zeigt die gzip-Lizenz an und beendet das Programm.
speichert den Originaldateinamen und den Zeitstempel nicht standardmäßig beim Komprimieren; (der Originalname wird immer gespeichert, wenn der Name gekürzt werden muss) stellt beim Dekomprimieren den Originaldateinamen nicht wieder her, falls vorhanden (entfernt nur die gzip-Endung vom komprimierten Dateinamen) und stellt den Originalzeitstempel nicht wieder hers, falls vorhanden (er wird von der komprimierten Datei kopiert). Dies ist die Vorgabe beim Dekomprimieren.
sichert beim Komprimieren immer den Originaldateinamen und den Sekunden-Teil des originalen Änderungs-Zeitstempels, sofern das Original eine reguläre Datei ist und der Zeitstempel mindestens 1 (1. Januar 1970, 00:00 Uhr Weltzeit), aber kleiner als 2**32 ist (7. Februar 2016, 06:28:16 Weltzeit, unter der Annahme, dass Schaltsekunden nicht gezählt werden); dies ist die Vorgabe. Beim Dekomprimieren wird der Originaldateiname und der Zeitstempel wiederhergestellt, falls vorhanden. Diese Option ist auf Systemen nützlich, die eine Begrenzung der Dateilänge haben oder wenn der Zeitstempel nach einer Dateiübertragung verloren ging.
unterdrückt alle Warnungen.
reist rekursiv durch die Verzeichnisstruktur. Falls einige der Dateinamen, die auf der Befehlszeile angegeben wurden, Verzeichnisse sind, wird gzip in das Verzeichnis hinabsteigen und alle Dateien komprimieren, die es dort findet (oder sie im Fall von gunzip dekomprimieren).
verwendet beim Komprimieren die Endung .suf anstelle von .gz. Jede nicht-leere Endung kann angegeben werden, aber andere Endungen als .z oder .gz sollten vermieden werden, um Verwirrung zu vermeiden, wenn Dateien auf andere Systeme übertragen werden.

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.

verwendet die synchrone Ausgabe. Mit dieser Option ist die Wahrscheinlichkeit reduziert, dass gzip Daten während eines Systemabsturzes verliert, es kann aber deutlich langsamer sein.
Test. Die Richtigkeit der komprimierten Datei wird geprüft und das Programm dann beendet.
aktiviert die detaillierte Ausgabe. Der Name und die prozentuale Verkleinerung für jede komprimierte und dekomprimierte Datei wird angezeigt.
zeigt die Versionsnummer und Kompilierungsoptinen an und beendet dann das Programm.
-# --fast --best
reguliert die Komprimierungsgeschwindigkeit unter Angabe der Ziffer #, wobei -1 oder --fast die schnellste (geringste Komprimierung) und -9 oder --best die langsamste (beste Komprimierung) Komprimierungsmethode anzeigen. Die Standardkomprimierungsstufe ist -6 (tendiert gegen hohe Komprimierung auf Kosten der Geschwindigkeit).
Wenn Sie komprimierte Dateien zwischen Rechnern synchronisieren, erlaubt diese Option rsync(1), nur Dateien zu übertragen, die im Archiv geändert wurden, statt des gesamten Archivs. Normalerweise kann der Komprimierungsalgorithmus eine neue Version des Archivs erzeugen, die nicht auf die vorherige Version des Archives passt, falls sich an einer Datei im Archiv etwas ändert. In diesem Fall überträgt rsync die gesamte neue Version des Archivs auf den fernen Rechner. Mit dieser Option kann rsync nur die geänderten Dateien sowie einen kleinen Anteil an Metadaten, der zur Aktualisierung der Archivstruktur in der Gegend, wo sich etwas geändert hat, benötigt wird, übertragen.

FORTGESCHRITTENE VERWENDUNG

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.

UMGEBUNGSVARIABLEN

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 "$@"

SIEHE AUCH

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.

DIAGNOSE

Exit-Status ist normalerweise 0; falls ein Fehler auftritt, ist der Status 1. Falls eine Warnung auftritt, ist der Exit-Status 2.

Auf der Befehlszeile wurden ungültige Optionen angegeben.
Die Datei, die gunzip angegeben wurde, war nicht komprimiert.
Die komprimierte Datei war beschädigt. Die Daten können bis zum Punkt des Fehlschlagens wiederhergestellt werden durch Benutzung von


zcat Datei > recover

Die Datei wurde (unter Benutzung von LZW) durch ein Programm komprimiert, das mehr Bits bewältigen könnte als der Dekomprimierungskode auf dieser Maschine. Komprimieren Sie die Datei erneut mit gzip, das besser komprimiert und weniger Speicher belegt.
Es wird angenommen, dass die Datei bereits komprimiert ist. Benennen Sie die Datei um und versuchen Sie es erneut.
Antworten Sie mit »y«, falls Sie die Ausgabedatei ersetzen möchten; »n«, falls nicht.
Es wurde ein SIGSEGV-Verstoß entdeckt, was normalerweise bedeutet, dass die Eingabedatei beschädigt wurde.
(Nur für -v und -l von Bedeutung)
Wenn die Eingabedatei keine reguläre Datei oder Verzeichnis ist (z.B. ein symbolischer Link, Socket, FIFO, Gerätedatei), bleibt sie unverändert.
Die Eingabedatei hat Links; sie bleibt unverändert. Weitere Informationen finden Sie unter ln(1). Benutzen Sie den Schalter -f, um Komprimierung mehrfach verlinkter Dateien zu erzwingen.

EINSCHRÄNKUNGEN

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.

FEHLER

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.

FEHLER MELDEN

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-HINWEIS

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.

ÜBERSETZUNG

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