Manpages

NOM

gzip, gunzip, zcat - Compresser ou décompresser des fichiers

SYNOPSIS

gzip [ -acdfhklLnNrtvV19 ] [-S suffixe] [ nom ... ]
gunzip
[ -acfhklLnNrtvV ] [-S suffixe] [ nom ... ]
zcat
[ -fhLV ] [ nom ... ]

DESCRIPTION

gzip réduit la taille des fichiers nommés en utilisant le codage Lempel-Ziv (LZ77). Quand c’est possible, chaque fichier est remplacé par un autre fichier portant l’extension .gz, en gardant les mêmes modes de permissions, et les mêmes dates de dernier accès et de modification. (L’extension par défaut est z pour MSDOS, FAT OS/2, FAT Windows NT et Atari.) Si aucun fichier n’est spécifié, ou si un nom de fichier est « - »,l’entrée standard est compressée sur la sortie standard. gzip n’essaiera de compresser que les fichiers normaux. En particulier, il ignorera les liens symboliques.

Si le nom du fichier compressé est trop long pour son système de fichiers, gzip le tronque. gzip essaie de ne tronquer que les parties du nom du fichier plus longues que trois caractères. (Une partie est délimitée par des points.) Si le nom n’est constitué que de petites parties, les plus longues d’entre elles sont tronquées. Par exemple, si les noms de fichier sont limités à 14 caractères, gzip.msdos.exe sera compacté en gzi.msd.exe.gz. Les noms ne sont pas tronqués sur les systèmes qui ne comportent pas de limites sur la longueur des noms de fichier.

Par défaut, gzip conserve le nom du fichier original et son horodatage dans le fichier compressé. Ceux-ci sont utilisés durant la décompression du fichier avec l’option -N. C’est utile quand le nom du fichier compressé a été tronqué ou lorsque l’horodatage n’a pas été préservée après un transfert de fichier.

Les fichiers compressés peuvent être restaurés dans leur forme originale en utilisant gzip -d gunzip ou zcat. Si le nom original conservé dans le fichier compressé ne convient pas à son système de fichiers, un nouveau nom est construit à partir de l’original pour le rendre conforme.

gunzip reçoit une liste de fichiers sur la ligne de commandes et remplace chaque fichier dont le nom se termine par .gz, -gz, .z, -z, _z ou .Z, et qui commence par le nombre magique correct, par un fichier décompressé sans l’extension originale. gunzip reconnaît également les extensions spéciales .tgz et .taz comme des raccourcis pour .tar.gz et .tar.Z respectivement. Lors de la compression, gzip utilise l’extension .tgz si nécessaire au lieu de tronquer un fichier possédant une extension .tar.

gunzip peut actuellement décompacter les fichiers créés avec gzip, zip, compress, compress -H ou pack. La détection du format d’entrée est automatique. Quand il utilise les deux premiers formats, gunzip vérifie un CRC 32 bits. Pour pack, gunzip, il vérifie la longueur du fichier décompressé. Le format compress standard n’a pas été prévu pour permettre des contrôles de cohérence. Néanmoins, gunzip est quelquefois capable de détecter un fichier .Z défectueux. Si vous obtenez une erreur lors de la décompression d’un fichier .Z, ne supposez pas que le fichier .Z est correct uniquement parce que l’uncompress standard ne se plaint pas. Cela signifie en général que l’uncompress standard ne vérifie pas son entrée, et génère béatement une sortie « dégradée ». Le format -H du compress SCO (méthode de compression LZH) n’inclut pas de CRC mais permet tout de même quelques tests de cohérence.

Les fichiers créés par zip ne peuvent être décompressés par gzip que s’ils n’ont qu’un seul membre compressé avec la méthode de « dégonflement » (deflation). Cette fonctionnalité n’est prévue que pour faciliter la conversion de fichiers .tar.zip vers le format .tar.gz. Pour extraire un fichier zip avec un seul membre, utilisez une commande telle que gunzip <toto.zip ou gunzip -S .zip toto.zip. Pour extraire un fichier zip contenant plusieurs membres, utilisez unzip au lieu de gunzip.

zcat est identique à gunzip -c. (Sur certains systèmes, zcat peut être installé en tant que gzcat pour préserver le lien original vers compress.) zcat décompresse soit une liste de fichiers obtenue à partir de la ligne de commandes, soit son entrée standard, et écrit les données décompressées sur la sortie standard. zcat décompresser les fichiers ayant le nombre magique correct qu’ils possèdent le suffixe .gz ou non.

gzip utilise l’algorithme de Lempel-Ziv utilisé par zip et PKZIP. Le pourcentage de compression obtenu dépend de la taille de l’entrée, et de la distribution des sous-chaînes de caractères communes. Habituellement, des fichiers texte de type code source ou anglais seront compressés à hauteur de 60-70 %. La compression est en général nettement meilleure que celle obtenue par LZW (utilisé par compress), le codage de Huffman (utilisé dans pack), ou le codage de Huffman adaptatif (compact).

La compression est toujours effectuée, même si le fichier compressé est légèrement plus grand que l’original. L’augmentation dans le pire des cas est de quelques octets pour l’en-tête du fichier gzip, plus 5 octets tous les blocs de 32 Ko, ou une augmentation de 0,015 % pour les grands fichiers. Notez que le nombre réel de blocs de disque utilisés n’augmente presque jamais. gzip préserve les modes, permissions et horodatages des fichiers qu’il compresse ou décompresse.

OPTIONS

-a --ascii

mode texte ascii : convertir les fins de lignes en utilisant les conventions locales. Cette option n’est supportée que sur certains systèmes non Unix. Pour MSDOS, CRLF est converti en LF lors de la compression, et LF estconverti en CRLF lors de la décompression.

-c --stdout --to-stdout

écrire la sortie sur la sortie standard ; garder les fichiers originaux inchangés. S’il y plusieurs fichiers d’entrée, la sortie consiste en une séquence de membres compressés indépendamment. Pour obtenir un meilleur taux de compression, concaténez tous les fichiers d’entrée avant de les compresser.

-d --decompress --uncompress

décompresser

-f --force

forcer la compression ou la décompression même si le fichier possède plusieurs liens matériels, ou si le fichier correspondant existe déjà, ou encore si les données compressées sont lues à partir ou écrites vers un terminal. Si les données d’entrée ne sont pas dans un format reconnu par gzip, et si l’option --stdout est fournie, copier les données en entrée sans modification sur la sortie standard : laisser zcat se comporter comme cat. Si -f n’est pas fourni, et s’il ne tourne pas en arrière-plan, gzip interroge l’utilisateur pour vérifier si un fichier existant doit être écrasé ou non.

-h --help

afficher un écran d’aide et quitter.

-k --keep

conserver (ne pas supprimer) les fichiers d’entrée durant la compression ou la décompression.

-l --list

pour chaque fichier compressé, afficher les champs suivants :

compressed size : taille du fichier compressé
uncompressed size : taille du fichier non compressé
ratio : taux de compression (0.0 % si inconnu)
uncompressed_name : nom du fichier non compressé

La taille du fichier non compressé vaut -1 pour les fichiers n’étant pas au format gzip, comme les fichiers compressés « .Z ». Pour obtenir la taille décompressée de tels fichiers, vous pouvez utiliser :

zcat fichier.Z | wc -c

En combinaison avec l’option --verbose, les champs suivants sont également affichés :

method : méthode de compression
crc : CRC 32 bits des données décompressées
date & time : horodatage du fichier décompressé

Les méthodes de compression actuellement prises en charge sont deflate, compress, lzh (option -H du compress SCO) et pack. La valeur du CRC affichée est de ffffffff pour les fichiers qui ne sont pas au format gzip.

Avec l’option --name, le nom non compressé, la date et l’heure sont ceux stockés dans le fichier compressé, s’ils sont présents.

Avec --verbose, les totaux de taille et le taux de compression de tous les fichiers sont aussi affichés à moins que la taille de certains fichiers soit inconnue. Avec --quiet, les lignes de titre et de totaux ne sont pas affichées.

-L --license

Afficher la licence d’utilisation de gzip et quitter.

-n --no-name

Lors de la compression, ne pas sauvegarder les noms et horodatages des fichiers originaux par défaut (le nom original est toujours sauvegardé si le nom du fichier a dû être tronqué). Lors de la décompression, ne pas restaurer le nom du fichier original s’il est présent (ne supprimer que le suffixe gzip du nom du fichier compressé), et ne pas restaurer l’horodatage original s’il est présent (prendre celui du fichier compressé). Cette option est activée par défaut lors de la décompression.

-N --name

Lors de la compression, toujours sauvegarder les noms et horodatages des fichiers originaux ; c’est le comportement par défaut. Lors de la décompression, restaurer le nom du fichier original et son horodatage s’ils sont présents. Cette option est utile sur les systèmes ayant une limite sur la longueur des noms de fichiers ou lorsque l’horodatage a été perdu à l’occasion d’un transfert de fichier.

-q --quiet

Supprimer tous les avertissements.

-r --recursive

Parcourir la structure du répertoire récursivement. Si l’un des noms de fichiers spécifiés sur la ligne de commandes est un répertoire, gzip descendra dans ce répertoire et compressera tous les fichiers qu’il y trouve (ou les décompressera dans le cas de gunzip).

-S .suf --suffix .suf

Lors de la compression, utiliser le suffixe .suf au lieu de .gz. N’importe quel suffixe non vide peut être donné, mais les suffixes autres que .z et .gz devraient être évités pour éviter une confusion lors du transfert de fichiers sur d’autres systèmes.

Lors de la décompression, ajouter .suf au début de la liste des suffixes pour essayer une dérivation du nom de fichier de sortie à partir du nom de fichier d’entrée.

--synchronous

Utiliser une sortie synchrone. Avec cette option, gzip est moins susceptible de perdre des données lors d’un plantage du système. mais il peut être considérablement plus lent.

-t --test

Tester. Vérifier l’intégrité du fichier compressé.

-v --verbose

Mode bavard. Afficher le nom et le pourcentage de réduction pour chaque fichier compressé ou décompressé.

-V --version

Version. Afficher le numéro de version et les options de compilation puis quitter.

-# --fast --best

Réguler la vitesse de compression en utilisant le chiffre # spécifié, où -1 ou --fast indique la méthode de compression la plus rapide (la moins bonne compression), et -9 ou --best indique la méthode de compression la plus lente (la meilleure compression). Le niveau de compression par défaut est -6 (c’est-à-dire biaisé en faveur d’une forte réduction aux dépens de la vitesse d’exécution.

--rsyncable

Lors de la synchronisation d’un fichier compressé entre deux ordinateurs, cette option permet à rsync de ne transférer que les fichiers qui ont changé dans l’archive plutôt que l’archive complète. Normalement, après une modification dans n’importe quel fichier dans l’archive, l’algorithme de compression peut générer une nouvelle version de l’archive qui ne correspond pas à la version précédente de l’archive. Dans ce cas, rsync transfère la totalité de la nouvelle version de l’archive vers l’ordinateur distant. Avec cette option, rsync peut ne transférer que les fichiers modifiés ainsi qu’une petite quantité de métadonnées qui sont nécessaires à la mise à jour de la structure de l’archive dans la zone qui a été modifiée.

UTILISATION AVANCÉE

De multiples fichiers compressés peuvent être concaténés. Dans ce cas, gunzip extraira tous les membres ensemble. Par exemple, si on fait :

gzip -c fichier1 > toto.gz
gzip -c fichier2 >> toto.gz

alors

gunzip -c toto

est équivalent à :

cat fichier1 fichier2

Si un membre d’un fichier .gz est endommagé, les autres membres peuvent néanmoins être récupérés (si le membre endommagé est supprimé). Néanmoins, il est possible d’obtenir un meilleur taux de compression en compressant tous les membres ensemble :

cat fichier1 fichier2 | gzip > toto.gz

compresse mieux que

gzip -c fichier1 fichier2 > toto.gz

Pour recompresser des fichiers concaténés pour obtenir une meilleure réduction, exécuter :

gzip -cd ancien.gz | gzip > nouveau.gz

Si un fichier compressé est constitué de plusieurs membres, la taille décompressée et le CRC rapportés par l’option --list s’appliquent uniquement au dernier membre. Si vous avez besoin de la taille décompressée de tous les membres, vous pouvez utiliser :

gzip -cd fichier.gz | wc -c

Si vous voulez créer un fichier archive contenant plusieurs membres de sorte que les membres puissent être ensuite extraits indépendamment, utilisez un archiveur comme tar ou zip. GNU tar prend en charge l’option -z pour invoquer gzip de façon transparente. gzip est conçu comme un complément à tar, pas comme un remplacement.

ENVIRONNEMENT

La variable d’environnement obsolescente GZIP peut contenir un ensemble d’options par défaut pour gzip. Ces options sont interprétées en premier lieu et peuvent être surchargées par les paramètres explicites présents sur la ligne de commandes. Comme cela peut provoquer des problèmes lors de l’utilisation de scripts, cette fonctionnalité n’est prise en charge que pour les options qui sont raisonnablement susceptibles de ne pas causer trop de dommages, et gsip avertit lors de son utilisation. Cette fonctionnalité peut être supprimée dans une version future de gzip.

Un alias ou un script peuvent être utilisés à la place. Par exemple, si gzip est dans le répertoire /usr/bin, il est possible d’ajouter $HOME/bin dans PATH et de créer un script exécutable $HOME/bin/gzip contenant les lignes suivantes :

#! /bin/sh
export PATH=/usr/bin
exec gzip -9 "$@"

VOIR AUSSI

znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1)

Le format de fichier gzip est spécifié par P. Deutsch, dans « GZIP file format specification » version 4.3, sur <https://www.ietf.org/rfc/rfc1952.txt>;, RFC Internet 1952 (mai 1996). Le format de décompression (deflation) zip est spécifié par P. Deutsch, dans « DEFLATE Compressed Data Format Specification » version 1.3, sur <https://www.ietf.org/rfc/rfc1951.txt>;, RFC Internet 1951 (mai 1996).

DIAGNOSTICS

La valeur de sortie est normalement ; si une erreur se produit, la valeur de sortie sera 1. Si un avertissement se produit, la valeur de sortie sera 2.
Usage : gzip [-cdfhklLnNrtvV19] [-S suffixe] [fichier ...]

Des options non valables ont été spécifiées sur la ligne de commandes.

fichier: not in gzip format

Le fichier fourni à gunzip n’a pas été compressé.

fichier: Corrupt input. Use zcat to recover some data.

Le fichier compressé a été endommagé. Les données se situant jusqu’au point d’échec peuvent être récupérées en utilisant

zcat fichier > recover

fichier: compressed with xx bits, can only handle yy bits

Fichier a été compacté (en utilisant LZW) par un programme qui peut traiter plus de bits que le code de décompression sur la machine utilisée. Recompressez le fichier avec gzip, qui compresse mieux et utilise moins de mémoire.

fichier: already has .gz suffix -- unchanged

Le fichier est supposé être déjà compacté. Renommez le fichier et essayez à nouveau.

fichier already exists; do you wish to overwrite (y or n)?

Répondez « y » si vous voulez que le fichier de sortie soit remplacé ; sinon, répondez « n ».

gunzip: corrupt input

Une violation de segmentation de mémoire (SIGSEGV) a été détectée, ce qui signifie en général que le fichier d’entrée a été corrompu.

xx.x% Pourcentage du fichier d’entrée économisé par la compression.

(Pertinent uniquement pour -v et -l.)

-- not a regular file or directory: ignored

Quand le fichier d’entrée n’est pas un fichier normal ou un répertoire (c’est-à-dire un lien symbolique, une socket, un tube nommé (FIFO) ou un fichier de périphérique), il est laissé tel quel.

-- has xx other links: unchanged

Le fichier d’entrée possède des liens (NdT : matériels) ; il est laissé inchangé. Voyez ln(1) pour plus d’informations. Utilisez l’option -f pour forcer la réduction de fichiers liés plus d’une fois.

AVERTISSEMENTS

Lors de l’écriture de données compressées sur une bande magnétique, il est généralement nécessaire de compléter la sortie avec des zéros jusqu’à arriver à une limite de bloc. Quand les données sont lues et que le bloc entier est envoyé à gunzip pour décompression, gunzip détecte qu’il y a des déchets excédentaires à la fin des données compressées, et émet par défaut un avertissement. Vous devez utiliser l’option --quiet pour supprimer cet avertissement.

BOGUES

Le format gzip représente la taille d’entrée modulo 2^32 ; de ce fait, l’option --list rapporte des tailles réduites et des taux de compression incorrects pour des fichiers réduits de 4 Go ou plus. Pour contourner ce problème, vous pouvez utiliser la commande suivante pour découvrir la véritable taille d’un grand fichier décompressé :

zcat fichier.gz | wc -c

L’option --list rapporte des tailles de -1 et un crc de ffffffff si le fichier compressé est situé sur un médium non positionnable.

Dans quelques rares cas, l’option --best donne une moins bonne compression que le niveau de compactage par défaut (-6). Sur certains fichiers hautement redondants, compress compacte mieux que gzip.

COPYRIGHT

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

L’autorisation est donnée de créer et de distribuer des copies textuelles de ce manuel, à condition que la notice de copyright et la notice de permission soient préservées dans toutes les copies.

L’autorisation est donnée de copier et distribuer des versions modifiées de ce manuel sous les conditions des copies textuelles, à condition que tout le travail qui en est issu soit distribué sous les termes d’une notice de permission identique à celle-ci.

L’autorisation est donnée de copier et distribuer des traductions de ce manuel dans n’importe quelle autre langue, sous les conditions ci-dessus pour les versions modifiées, mis à part que cette notice de permission peut être incluse dans une traduction approuvée par la Free Software Foundation.

TRADUCTION

La traduction française de cette page de manuel a été créée par Frédéric Delanoy <delanoy_f [AT] yahoo.com> et Jean-Pierre Giraud <jean-pierregiraud [AT] neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french [AT] lists.org>.