zcat(1) Dateien komprimieren und expandieren

Other Alias

gzip, gunzip

ÜBERSICHT

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

BESCHREIBUNG

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 -gz für VMS und 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. 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. 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 oder zcat 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, compress, compress -H oder pack erstellt wurden. Das Eingabeformat wird automatisch festgestellt. Wenn die ersten beiden Formate benutzt werden, prüft gunzip einen 32-Bit-CRC. Für pack 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 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.

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. Beachten Sie, dass sich die tatsächliche Anzahl benutzter Plattenblöcke fast nie erhöht. gzip bewahrt beim Komprimieren und Dekomprimieren den Modus, die Besitzrechte und die Zeitstempel der Datei.

OPTIONEN

-a --ascii
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.
-c --stdout --to-stdout
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.
-d --decompress --uncompress
Dekomprimieren
-f --force
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.
-h --help
eine Hilfemaske anzeigen und beenden
-k --keep
behält (löscht keine) Eingabedateien während der Komprimierung oder Dekomprimierung.
-l --list
für jede komprimierte Datei die folgenden Felder auflisten:


    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 file.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.

-L --license
die gzip-Lizenz anzeigen und beenden
-n --no-name
den Originaldateinamen und den Zeitstempel nicht standardmäßig beim Komprimieren speichern; (Der Originalname wird immer gespeichert, wenn der Name gekürzt werden muss.) beim Dekomprimieren den Originaldateinamen nicht wiederherstellen, falls vorhanden (nur die gzip-Endung vom komprimierten Dateinamen entfernen) und den Originalzeitstempel nicht wiederherstellen, falls vorhanden (er wird von der komprimierten Datei kopiert). Dies ist die Vorgabe beim Dekomprimieren.
-N --name
den Originaldateinamen und den Zeitstempel beim Komprimieren immer sichern; dies ist die Vorgabe; beim Dekomprimieren den Originaldateinamen und den Zeitstempel wiederherstellen, 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.
-q --quiet
alle Warnungen unterdrücken
-r --recursive
rekursiv durch die Verzeichnisstruktur reisen. 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).
--rsyncable
synchronisiert gelegentlich während des Komprimierens die Ausgabe basierend auf der Eingabe. Dies erhöht in den meisten Fällen die Größe um weniger als ein Prozent, bedeutet aber, dass das Programm rsync(1) Vorteile aus den Gemeinsamkeiten in der unkomprimierten Eingabe ziehen kann, wenn zwei Dateien mit diesem Schalter komprimiert werden. gunzip kann nicht den Unterschied zwischen einer mit dieser Option und einer ohne diese Option komprimierten Datei erkennen.
-S .suf --suffix .suf
beim Komprimieren die Endung .suf anstelle von .gz verwenden. Jede nichtleere 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.

-t --test
Test. Die Richtigkeit der komprimierten Datei prüfen
-v --verbose
Detailliert. Den Namen und die prozentuale Verkleinerung für jede komprimierte und dekomprimierte Datei anzeigen.
-V --version
Version. Die Versionsnummer und Kompilierungsoptinen anzeigen, dann beenden.
-# --fast --best
Die Komprimierungsgeschwindigkeit unter Angabe der Ziffer # regulieren, 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).

FORTGESCHRITTENE VERWENDUNG

Mehrere komprimierte Dateien können aneinandergehängt werden. In diesem Fall wird gunzip alle Elemente auf einmal extrahieren. Zum Beispiel:


      gzip -c file1  > foo.gz
      gzip -c file2 >> foo.gz

dann


      gunzip -c foo

entspricht


      cat file1 file2

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 file1 file2 | gzip > foo.gz

komprimiert besser als


      gzip -c file1 file2 > foo.gz

Falls Sie zusammengehängte Dateien erneut komprimieren möchten, um eine bessere Komprimierung zu erhalten, tun Sie Folgendes:


      gzip -cd old.gz | gzip > new.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 file.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 oder Zip. 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 Umgebungsvariable GZIP kann einen Satz Vorgabeoptionen für gzip enthalten. Diese Optionen werden zuerst interpretiert und können durch Befehlszeilenparameter explizit überschrieben werden. Zum Beispiel:
      für sh:    GZIP="-8v --name"; export GZIP
      für csh:   setenv GZIP "-8v --name"
      für MSDOS: set GZIP=-8v --name

Auf Vax/VMS ist der Name der Umgebungsvariablen GZIP_OPT, um einen Konflikt mit dem Symbolsatz zum Aufruf des Programms zu vermeiden.

DIAGNOSE

Exit-Status ist normalerweise 0; falls ein Fehler auftritt ist der Status 1. Falls eine Warnung auftritt, ist der Exit-Status 2.
Aufruf: gzip [-cdfhklLnNrtvV19] [-S Endung] [Datei …]
Auf der Befehlszeile wurden ungültige Optionen angegeben.
Datei: nicht im Gzip-Format
Die Datei, die gunzip angegeben wurde, war nicht komprimiert.
Datei: beschädigte Eingabe. Benutzen Sie Zcat, um einige Daten wiederherzustellen.
Die komprimierte Datei war beschädigt. Die Daten können bis zum Punkt des Fehlschlagens wiederhergestellt werden durch Benutzung von


      zcat file > recover

Datei: komprimiert mit xx Bits, nur yy-Bits können gehandhabt werden
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.
Datei: hat bereits eine .gz-Endung – keine Änderung
Es wird angenommen, dass die Datei bereits komprimiert ist. Benennen Sie die Datei um und versuchen Sie es erneut.
Datei existiert bereits; möchten Sie sie überschreiben (j oder n)?
Antworten Sie mit »j«, falls Sie die Ausgabedatei ersetzen möchten; »n«, falls nicht.
gunzip: beschädigte Eingabe
Es wurde ein SIGSEGV-Verstoß entdeckt, was normalerweise bedeutet, dass die Eingabedatei beschädigt wurde.
xx.x% Prozent der Eingabe durch Komprimierung eingespart
(Nur für -v und -l von Bedeutung)
– keine reguläre Datei oder Verzeichnis: ignoriert
Wenn die Eingabedatei keine reguläre Datei oder Verzeichnis ist (z.B. ein symbolischer Link, Socket, FIFO, Gerätedatei), bleibt sie unverändert.
– hat xx andere Verweise: unverändert
Die Eingabedatei hat harte Links; sie bleibt unverändert. Weitere Informationen finden Sie unter ln(1). Benutzen Sie den Schalter -f, um Komprimierung mehrfach verknüpfter 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. Diese Option kann in der Umgebungsvariable GZIP gesetzt werden, wie in:
  für sh:  GZIP="-q"  tar -xfz --block-compress /dev/rst0
  für csh: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0

Im vorhergehenden Beispiel wurde Gzip explizit durch die Option -z von GNU-Tar aufgerufen. Stellen Sie sicher, dass für das Lesen und Schreiben komprimierter Daten auf Bänder die gleiche Blockgröße (Option -b von Tar) verwandt wird. (Dieses Beispiel geht davon aus, dass Sie die GNU-Version von Tar verwenden.)

FEHLER

Das Gzip-Format stellt die Eingabegröße Modulo 2^32 dar, daher meldet die Option --list nicht korrekt dekomprimierte Größen und Komprimierungsraten für unkomprimierte Dateien von vier GB und größer. Um dieses Problem zu umgehen, können sie den folgenden Befehl benutzen, um die wahre Größe einer nicht komprimierten großen Datei aufzuspüren:


      zcat file.gz | wc -c

Die Option --list meldet Größen als -1 und CRC als ffffffff, falls die komprimierte Datei sich auf einem nicht durchsuchbaren Medium befinden.

In einigen seltenen Fällen ergab die Option --best schlechtere Komprimierung als die Standardkomprimierungsstufe (-6). Auf einigen hoch redundanten Dateien komprimiert compress besser als gzip.

COPYRIGHT-HINWEIS

Copyright © 1998, 1999, 2001, 2002, 2012 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 Übersetzung genannt werden könnte, der durch die Foundation genehmigt ist.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick <[email protected]> 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 <[email protected]>.