Handbücher für die Kommandozeile

Man » gzip-Handbuch online - detaillierte Online-Dokumentation für die gzip-Manpage

🌍
gzip, gunzip, zcat - Dateien komprimieren oder dekomprimieren

SYNOPSIS

gzip [ -acdfhklLnNrtvV19 ] [-S Suffix] [ Name ... ]
gunzip [ -acfhklLnNrtvV ] [-S Suffix] [ Name ... ]
zcat [ -fhLV ] [ Name ... ]

BESCHREIBUNG

Der Befehl gzip reduziert die Größe der angegebenen Dateien mithilfe der Lempel-Ziv-Codierung (LZ77). Wann immer möglich, wird jede Datei durch eine Datei mit der Erweiterung .gz ersetzt, wobei die gleichen Eigentums-, Zugriffs- und Änderungszeiten beibehalten werden. (Die Standarderweiterung ist z für MSDOS, OS/2 FAT, Windows NT FAT und Atari.) Wenn keine Dateien angegeben sind oder wenn der Dateiname - lautet, wird die Standardeingabe in die Standardausgabe komprimiert. Der Befehl gzip versucht nur, reguläre Dateien zu komprimieren. Insbesondere werden symbolische Links ignoriert.

Wenn der komprimierte Dateiname zu lang für sein Dateisystem ist, kürzt gzip ihn. Der Befehl gzip versucht, nur die Teile des Dateinamens zu kürzen, die länger als 3 Zeichen sind. (Ein Teil wird durch Punkte begrenzt.) Wenn der Name nur aus kleinen Teilen besteht, werden die längsten Teile gekürzt. Zum Beispiel werden bei einer Beschränkung der Dateinamen auf 14 Zeichen die Dateinamen gzip.msdos.exe zu gzi.msd.exe.gz komprimiert. Namen werden auf Systemen, die keine Beschränkung der Dateinamenlänge haben, nicht gekürzt.

Standardmäßig speichert gzip den ursprünglichen Dateinamen und Zeitstempel in der komprimierten Datei. Diese werden verwendet, wenn die komprimierte Datei mit der Option -N dekomprimiert wird. Dies ist nützlich, wenn der in der komprimierten Datei gespeicherte Name für sein Dateisystem nicht geeignet ist oder wenn der Zeitstempel nach einer Dateiübertragung nicht beibehalten wurde.

Komprimierte Dateien können mit gzip -d oder gunzip oder zcat in ihre ursprüngliche Form zurückversetzt werden. Wenn der in der komprimierten Datei gespeicherte ursprüngliche Name für sein Dateisystem nicht geeignet ist, wird ein neuer Name aus dem ursprünglichen Namen erstellt, um ihn gültig zu machen.

`gunzip` nimmt eine Liste von Dateien in seiner Befehlszeile entgegen und ersetzt jede Datei, deren
Name mit `.gz`, `-gz`, `.z`, `-z` oder `_z` (ohne Berücksichtigung der Groß- und Kleinschreibung)
endet und die mit der korrekten Magic-Nummer beginnt, durch eine unkomprimierte Datei ohne die
ursprüngliche Erweiterung. `gunzip` erkennt auch die speziellen Erweiterungen `.tgz` und `.taz` als
Kurzformen für `.tar.gz` bzw. `.tar.Z`. Beim Komprimieren verwendet `gzip` die Erweiterung `.tgz`,
falls erforderlich, anstelle einer Datei mit der Erweiterung `.tar` zu kürzen.

`gunzip` kann derzeit Dateien dekomprimieren, die mit `gzip`, `zip`, `compress`, `compress -H` oder
`pack` erstellt wurden. Die Erkennung des Eingabeformats erfolgt automatisch. Bei Verwendung der
ersten beiden Formate überprüft `gunzip` eine 32-Bit-CRC. Für `pack` und `gunzip` wird die
unkomprimierte Länge überprüft. Das Standardformat `compress` ist nicht dafür ausgelegt,
Konsistenzprüfungen durchzuführen. `gunzip` kann jedoch manchmal eine fehlerhafte `.Z`-Datei erkennen.
Wenn bei der Dekomprimierung einer `.Z`-Datei ein Fehler auftritt, sollten Sie nicht davon ausgehen,
dass die `.Z`-Datei korrekt ist, nur weil das Standardprogramm `uncompress` nicht meckert. Dies
bedeutet im Allgemeinen, dass das Standardprogramm `uncompress` seine Eingabe nicht überprüft und
einfach nur fehlerhafte Ausgaben erzeugt. Das SCO `compress -H`-Format (LZH-Komprimierungsmethode)
enthält keine CRC, ermöglicht aber einige Konsistenzprüfungen.

Dateien, die mit zip erstellt wurden, können nur dann von gzip dekomprimiert werden, wenn sie ein einzelnes, mit der Methode „deflation“ komprimierte Element enthalten. Diese Funktion soll hauptsächlich bei der Konvertierung von tar.zip-Dateien in das tar.gz-Format helfen. Um eine Zip-Datei mit einem einzelnen Element zu entpacken, verwenden Sie einen Befehl wie „gunzip \<foo.zip“ oder „gunzip -S .zip foo.zip“. Um Zip-Dateien mit mehreren Elementen zu entpacken, verwenden Sie stattdessen unzip anstelle von gunzip.

Der Befehl zcat ist identisch mit gunzip -c. (Auf einigen Systemen kann zcat als gzcat installiert sein, um den ursprünglichen Link zu compress beizubehalten.) zcat dekomprimiert entweder eine Liste von Dateien in der Befehlszeile oder seine Standardeingabe und schreibt die dekomprimierten Daten in die Standardausgabe. zcat dekomprimiert Dateien, die die korrekte Magic-Nummer haben, unabhängig davon, ob sie die Erweiterung .gz haben oder nicht.

Der Befehl gzip verwendet den Lempel-Ziv-Algorithmus, der auch in zip und PKZIP verwendet wird. Der Grad der Komprimierung hängt von der Größe der Eingabe und der Verteilung gemeinsamer Teilstrings ab. Typischerweise wird Text wie Quellcode oder Englisch um 60–70 % reduziert. Die Komprimierung ist im Allgemeinen viel besser als die mit LZW (wie in compress verwendet), Huffman-Codierung (wie in pack verwendet) oder adaptiver Huffman-Codierung (compact) erzielte.

Die Komprimierung wird immer durchgeführt, auch wenn die komprimierte Datei etwas größer ist als die ursprüngliche. Der schlimmste Fall einer Größenänderung sind einige Bytes für den gzip-Datei-Header, plus 5 Bytes pro 32-KiB-Block, oder ein Expansionsverhältnis von 0,015 % für große Dateien. Die tatsächlich verwendete Anzahl von Festplattenblöcken nimmt fast nie zu.

gzip behält normalerweise den Modus und den Zeitstempel einer Datei beim Komprimieren oder Dekomprimieren bei. Wenn Sie über die entsprechenden Berechtigungen verfügen, werden auch der Besitzer und die Gruppe der Datei beibehalten.

OPTIONEN

-a --ascii

ASCII-Textmodus: Konvertiert Zeilenenden unter Verwendung lokaler Konventionen. Diese Option wird nur auf einigen nicht-Unix-Systemen unterstützt. Für MSDOS wird CR LF beim Komprimieren in LF konvertiert, und LF wird beim Dekomprimieren in CR LF konvertiert.

-c --stdout --to-stdout

Schreibt die Ausgabe in die Standardausgabe; die ursprünglichen Dateien bleiben unverändert. Wenn es mehrere Eingabedateien gibt, besteht die Ausgabe aus einer Sequenz von unabhängig komprimierten Elementen. Um eine bessere Komprimierung zu erzielen, sollten Sie alle Eingabedateien vor der Komprimierung zusammenfügen.

-d --decompress --uncompress

Dekomprimieren.

-f --force

Erzwingt die Komprimierung oder Dekomprimierung, auch wenn die Datei mehrere Links hat oder die entsprechende Datei bereits vorhanden ist oder wenn die komprimierten Daten von einem Terminal gelesen oder in ein Terminal geschrieben werden. Wenn die Eingabedaten nicht in einem von gzip erkannten Format vorliegen und die Option --stdout ebenfalls angegeben ist, werden die Eingabedaten unverändert in die Standardausgabe kopiert: Lassen Sie zcat wie cat funktionieren. Wenn -f nicht angegeben ist und nicht im Hintergrund ausgeführt wird, fordert gzip auf, um zu überprüfen, ob eine vorhandene Datei überschrieben werden soll.


-h --help

Zeigt einen Hilfebildschirm an und beendet das Programm.

-k --keep

Behält die Eingabedateien während der Komprimierung oder Dekomprimierung bei (löscht sie nicht).

-l --list

Für jede komprimierte Datei werden die folgenden Felder aufgelistet:

komprimierte Größe: Größe der komprimierten Datei
unkomprimierte Größe: Größe der unkomprimierten Datei
Verhältnis: Komprimierungsverhältnis (0,0 %, wenn unbekannt)
unkomprimierter_Name: Name der unkomprimierten Datei

Die unkomprimierte Größe wird für Dateien, die nicht im gzip-Format vorliegen, wie z. B. komprimierte .Z-Dateien, mit -1 angegeben. Um die unkomprimierte Größe für eine solche Datei zu erhalten, können Sie Folgendes verwenden:

zcat file.Z | wc -c

In Kombination mit der Option --verbose werden auch die folgenden Felder angezeigt:

Methode: Komprimierungsmethode
CRC: die 32-Bit-CRC der unkomprimierten Daten
Datum und Uhrzeit: Zeitstempel für die unkomprimierte Datei

Die derzeit unterstützten Komprimierungsmethoden sind deflate, compress, lzh (SCO compress -H) und pack. Die CRC wird für eine Datei, die nicht im gzip-Format vorliegt, mit ffffffff angegeben.

Mit --name sind der unkomprimierte Name, das Datum und die Uhrzeit die, die in der komprimierten Datei gespeichert sind, falls vorhanden.

Mit --verbose werden auch die Gesamtgrößen und das Komprimierungsverhältnis für alle Dateien angezeigt, es sei denn, einige Größen sind unbekannt. Mit --quiet werden die Titel- und Zeilensummen nicht angezeigt.

-L --license

Zeigt die gzip-Lizenz an und beendet das Programm.

-n --no-name

Beim Komprimieren wird standardmäßig nicht der ursprüngliche Dateiname und Zeitstempel gespeichert. (Der ursprüngliche Name wird immer gespeichert, wenn der Name gekürzt werden musste.) Beim Dekomprimieren wird der ursprüngliche Dateiname, falls vorhanden, nicht wiederhergestellt (nur das gzip-Suffix des Dateinamens wird entfernt), und der ursprüngliche Zeitstempel wird, falls vorhanden, nicht wiederhergestellt (er wird von der komprimierten Datei kopiert). Diese Option ist die Standardeinstellung beim Dekomprimieren.

-N --name

Beim Komprimieren wird immer der ursprüngliche Dateiname gespeichert, und der Sekundenanteil des ursprünglichen Änderungszeitstempels wird gespeichert, wenn das Original eine reguläre Datei ist und sein Zeitstempel mindestens 1 (1970-01-01 00:00:01 UTC) und weniger als 2**32 (2106-02-07 06:28:16 UTC, wobei Sprungsekunden nicht berücksichtigt werden) beträgt; dies ist die Standardeinstellung. Beim Dekomprimieren wird der gespeicherte Dateiname und Zeitstempel wiederhergestellt, falls vorhanden. Diese Option ist nützlich auf Systemen, die eine Begrenzung der Dateinamenlänge haben oder wenn der Zeitstempel nach einer Dateiübertragung verloren gegangen ist.

-q --quiet

Unterdrückt alle Warnungen.

-r --recursive

Durchläuft die Verzeichnisstruktur rekursiv. Wenn einer der Dateinamen, die in der Befehlszeile angegeben sind, Verzeichnisse sind, durchsucht gzip das Verzeichnis und komprimiert alle darin gefundenen Dateien (oder dekomprimiert sie im Fall von gunzip).


-S .suf --suffix .suf

Beim Komprimieren wird anstelle von .gz die Suffixendung .suf verwendet. Es kann eine beliebige nicht leere Suffixendung angegeben werden, aber Suffixendungen, die nicht .z oder .gz sind, sollten vermieden werden, um Verwechslungen beim Übertragen von Dateien auf andere Systeme zu vermeiden.

Beim Dekomprimieren wird .suf am Anfang der Liste der zu versuchenden Suffixendungen hinzugefügt, wenn ein Ausgabedateiname aus einem Eingabedateinamen abgeleitet wird.

--synchronous

Synchrone Ausgabe verwenden. Mit dieser Option ist gzip weniger anfällig für Datenverlust bei einem Systemabsturz, kann aber deutlich langsamer sein.

-t --test

Testen. Die Integrität der komprimierten Datei überprüfen und dann beenden.

-v --verbose

Ausführlich. Den Namen und den prozentualen Reduktionsgrad für jede komprimierte oder dekomprimierte Datei anzeigen.

-V --version

Version. Die Versionsnummer und die Kompilierungsoptionen anzeigen und dann beenden.

-# --fast --best

Die Komprimierungsgeschwindigkeit mit der angegebenen Ziffer # regeln, wobei -1 oder --fast die schnellste Komprimierungsmethode (weniger Komprimierung) und -9 oder --best die langsamste Komprimierungsmethode (beste Komprimierung) angibt. Die Standardkomprimierungsstufe ist -6 (d. h. auf hohe Komprimierung auf Kosten der Geschwindigkeit ausgerichtet).

--rsyncable

Wenn Sie eine komprimierte Datei zwischen zwei Computern synchronisieren, ermöglicht diese Option rsync, nur die Dateien zu übertragen, die sich in dem Archiv geändert haben, anstatt das gesamte Archiv. Normalerweise erzeugt der Komprimierungsalgorithmus nach einer Änderung in einer beliebigen Datei in dem Archiv eine neue Version des Archivs, die nicht mit der vorherigen Version des Archivs übereinstimmt. In diesem Fall überträgt rsync die gesamte neue Version des Archivs auf den Remote-Computer. Mit dieser Option kann rsync nur die geänderten Dateien sowie eine geringe Menge an Metadaten übertragen, die erforderlich sind, um die Archivstruktur in dem geänderten Bereich zu aktualisieren.

ERWEITERTE VERWENDUNG

Mehrere komprimierte Dateien können miteinander verkettet werden. In diesem Fall extrahiert gunzip alle Mitglieder auf einmal. Zum Beispiel:

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

Dann

gunzip -c foo

entspricht

cat file1 file2

Im Falle einer Beschädigung eines Mitglieds einer .gz-Datei können andere Mitglieder dennoch wiederhergestellt werden (wenn das beschädigte Mitglied entfernt wird). Sie können jedoch eine bessere Komprimierung erzielen, indem Sie alle Mitglieder auf einmal komprimieren:

cat file1 file2 | gzip > foo.gz

komprimiert besser als

gzip -c file1 file2 > foo.gz

Wenn Sie verkettete Dateien erneut komprimieren möchten, um eine bessere Komprimierung zu erzielen, führen Sie Folgendes aus:

gzip -cd old.gz | gzip > new.gz

Wenn eine komprimierte Datei aus mehreren Mitgliedern besteht, gelten die mit der Option --list angezeigte Größe der dekomprimierten Datei und die CRC nur für das letzte Mitglied. Wenn Sie die Größe der dekomprimierten Datei für alle Mitglieder benötigen, können Sie Folgendes verwenden:

gzip -cd file.gz | wc -c

Wenn Sie eine einzelne Archivdatei mit mehreren Mitgliedern erstellen möchten, so dass die Mitglieder später unabhängig voneinander extrahiert werden können, verwenden Sie ein Archivierungsprogramm wie tar oder zip. GNU tar unterstützt die Option -z, um gzip transparent aufzurufen. gzip ist als Ergänzung zu tar konzipiert, nicht als Ersatz.


UMWELT

Die veraltete Umgebungsvariable GZIP kann eine Reihe von Standardoptionen für gzip enthalten. Diese Optionen werden zuerst interpretiert und können durch explizite Befehlszeilenparameter überschrieben werden. Da dies bei der Verwendung von Skripten zu Problemen führen kann, wird diese Funktion nur für Optionen unterstützt, die wahrscheinlich keine größeren Probleme verursachen, und gzip warnt, wenn sie verwendet wird. Diese Funktion wird in einer zukünftigen Version von gzip entfernt.

Sie können stattdessen ein Alias oder ein Skript verwenden. Wenn sich gzip beispielsweise im Verzeichnis /usr/bin befindet, können Sie $HOME/bin an Ihren PATH anhä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 P. Deutsch, GZIP-Dateiformatspezifikation Version 4.3, [https://www.ietf.org/rfc/rfc1952.txt], Internet RFC 1952 (Mai 1996) angegeben. Das Zip-Deflationsformat ist in P. Deutsch, DEFLATE-Komprimierungsdatenformatspezifikation Version 1.3, [https://www.ietf.org/rfc/rfc1951.txt], Internet RFC 1951 (Mai 1996) angegeben.

DIAGNOSTIK

Der Exit-Status ist normalerweise 0; wenn ein Fehler auftritt, ist der Exit-Status 1. Wenn eine Warnung auftritt, ist der Exit-Status 2.

Verwendung: gzip [-cdfhklLnNrtvV19] [-S Suffix] [Datei ...]

Ungültige Optionen wurden in der Befehlszeile angegeben.

Datei: nicht im gzip-Format

Die angegebene Datei für gunzip wurde nicht komprimiert.

Datei: Beschädigte Eingabe.

Verwenden Sie zcat, um einige Daten wiederherzustellen. Die komprimierte Datei wurde beschädigt. Die Daten bis zum Fehlerpunkt können mit

zcat datei > wiederherstellen

Datei: mit xx Bits komprimiert, kann nur yy Bits verarbeiten

Datei wurde (mit LZW) von einem Programm komprimiert, das mit mehr Bits umgehen konnte, als der Dekomprimierungs-Code auf diesem Computer. Komprimieren Sie die Datei erneut mit gzip, das besser komprimiert und weniger Speicherplatz benötigt.

Datei: hat bereits das Suffix .gz – unverändert

Die Datei ist vermutlich bereits komprimiert. 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“, wenn Sie möchten, dass die Ausgabedatei ersetzt wird; mit „n“, wenn nicht.

gunzip: beschädigte Eingabe

Eine SIGSEGV-Verletzung wurde erkannt, was normalerweise bedeutet, dass die Eingabedatei beschädigt wurde.

xx.x % Anteil der Eingabe, der durch die Komprimierung gespart wurde.
(Nur relevant für -v und -l.)

-- keine reguläre Datei oder kein Verzeichnis: ignoriert

Wenn die Eingabedatei keine reguläre Datei oder kein Verzeichnis ist (z. B. ein symbolischer Link, eine Socket-, FIFO- oder Gerätedatei), wird sie unverändert gelassen.

-- hat xx andere Links: unverändert

Die Eingabedatei hat Links; sie wird unverändert gelassen. Weitere Informationen finden Sie unter ln(1). Verwenden Sie die Option -f, um die Komprimierung von mehrfach verknüpften Dateien zu erzwingen.

HINWEISE

Beim Schreiben von komprimierten Daten auf ein Band ist es im Allgemeinen erforderlich, die Ausgabe bis zu einer Blockgrenze mit Nullen aufzufüllen. Wenn die Daten gelesen werden und der gesamte Block an gunzip zur Dekomprimierung übergeben wird, stellt gunzip fest, dass nach den komprimierten Daten zusätzliche nachfolgende Daten vorhanden sind, und gibt standardmäßig eine Warnung aus. Sie können die Option --quiet verwenden, um die Warnung zu unterdrücken.


FEHLER

In einigen seltenen Fällen erzielt die Option --best eine schlechtere Komprimierung als die Standardkomprimierungsstufe (-6). Bei einigen hochgradig redundanten Dateien erzielt compress eine bessere Komprimierung als gzip.

FEHLERMELDUNGEN

Fehler melden an: _ GNU gzip-Homepage: [https://www.gnu.org/software/gzip/] Allgemeine Hilfe zur Verwendung von GNU-Software: [https://www.gnu.org/gethelp/]

URHEBERRECHTSHINWEIS

Copyright © 1998–1999, 2001–2002, 2012, 2015–2023 Free Software Foundation, Inc. Copyright © 1992, 1993 Jean-loup Gailly

Es wird die Erlaubnis erteilt, wörtliche Kopien dieses Handbuchs zu erstellen und zu verteilen, vorausgesetzt, der Urheberrechtshinweis und dieser Erlaubnishinweis bleiben auf allen Kopien erhalten.

Es wird die Erlaubnis erteilt, modifizierte Versionen dieses Handbuchs unter den Bedingungen für die wörtliche Kopie zu kopieren und zu verteilen, vorausgesetzt, dass das gesamte resultierende abgeleitete Werk unter den Bedingungen eines identischen Erlaubnishinweises verteilt wird.

Es wird die Erlaubnis erteilt, Übersetzungen dieses Handbuchs in eine andere Sprache zu kopieren und zu verteilen, unter den oben genannten Bedingungen für modifizierte Versionen, mit der Ausnahme, dass dieser Erlaubnishinweis in einer von der Foundation genehmigten Übersetzung angegeben werden kann.