Scroll to navigation

GZIP(1) Manuel de l'utilisateur Linux GZIP(1)

NOM

gzip, gunzip, zcat - Compacter ou décompacter des fichiers

SYNOPSIS

gzip [ -acdfhlLnNrtvV19 ] [-S suffixe] [ nom ... ]
gunzip [ -acfhlLnNrtvV ] [-S suffixe] [ nom ... ]
zcat [ -fhLV ] [ nom ... ]

DESCRIPTION

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

Si le nom du fichier compacté 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 3 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 seront tronquées. Par exemple, si les noms de fichiers 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 fichiers.

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

Les fichiers compactés peuvent être restaurés dans leur forme originale en utilisant gzip -d ou gunzip ou bien encore zcat. Si le nom original sauvegardé dans le fichier compacté 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écompacté 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 du compactage, 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 vérifie la longueur du fichier décompacté. 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 du décompactage 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 » sans s'en offusquer. Le format -H du compress SCO (méthode de réduction 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écompactés par gzip que s'ils n'ont qu'un seul membre compacté avec la méthode de « dégonflement » (Ndt : 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 comme gunzip <foo.zip ou gunzip -S .zip foo.zip. Pour extraire des fichiers 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écompacte soit une liste de fichiers obtenue à partir de la ligne de commandes, soit son entrée standard, et écrit les données décompactées sur la sortie standard. zcat décompactera 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 taux de compression obtenu dépend de la taille de l'entrée, et de la distribution des sous-chaînes de caractères communes. Typiquement, des fichiers textes du type code source en anglais seront réduits à hauteur de 60-70 %. La réduction 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).

Le compactage est toujours effectué, même si le fichier compacté est légèrement plus grand que l'original. L'expansion 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 expansion 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 compacte ou décompacte.

OPTIONS

Mode texte ascii ; convertit les fins de lignes en utilisant les conventions locales. Cette option n'est acceptée que sur certains systèmes non Unix. Pour MSDOS, CR LF est converti en LF lors du compactage, et LF est converti en CR LF lors du décompactage.
É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 compactés indépendamment. Pour obtenir un meilleur taux de compression, concaténez tous les fichiers d'entrée avant de les compacter.
Décompacter.
Forcer le compactage ou le décompactage 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 compactées sont lues ou écrites à partir d'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 fournie, 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.
Afficher un écran d'aide et quitter.
Pour chaque fichier compacté, afficher les champs suivants :


compressed size : taille du fichier compacté
uncompressed size : taille du fichier non compacté
ratio : coefficient de réduction (0.0 % si inconnu)
uncompressed_name : nom du fichier non compacté

La taille du fichier non compacté vaut -1 pour les fichiers n'étant pas au format gzip, comme les fichiers compactés .Z. Pour obtenir la taille décompacté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 réduction
crc: CRC 32 bits des données décompactées
date & time: horodate du fichier décompacté

Les méthodes de réduction 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 --name, le nom décompacté, la date et l'heure sont ceux stockés dans le fichier compacté (s'il y sont présents).

Avec --verbose, les totaux de taille et de coefficient de réduction pour tous les fichiers sont également affichés, à moins que certaines tailles soient inconnues. Avec --quiet, les lignes de titre et de totaux ne sont pas affichées.

Afficher la licence d'utilisation de gzip et se terminer.
Lors du compactage, 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 du décompactage, ne pas restaurer le nom du fichier original s'il est présent (ne supprimer que le suffixe gzip du nom du fichier compacté), et ne pas restaurer l'horodate originale si elle est présente (prendre celle du fichier compacté). Cette option est activée par défaut lors du décompactage.
Lors du compactage, toujours sauvegarder les noms et horodatages des fichiers originaux ; c'est le comportement par défaut. Lors du décompatage, restaurer le nom du fichier original et son horodate 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.
Supprimer tous les avertissements.
Parcourir la structure du répertoire récursivement. Si l'un des noms de fichiers mentionnés sur la ligne de commandes est un répertoire, gzip descendra dans ce répertoire et compactera tous les fichiers qu'il y trouve (ou les décompactera dans le cas de gunzip).
Utiliser le suffixe au lieu de .gz. N'importe quel suffixe peut être donné, mais les suffixes différents de .z et .gz devraient être évités pour éviter une confusion lors du transfert de fichiers sur d'autres systèmes. Un suffixe vide force gunzip à essayer de décompacter tous les fichiers donnés quel que soit leur suffixe, comme dans


gunzip -S "" * (*.* pour MSDOS)

Des versions précédentes de gzip utilisaient le suffixe .z. Ceci a été modifié pour éviter un conflit avec pack(1).

Tester. Vérifier l'intégrité du fichier compacté.
Mode volubile. Afficher le nom et le pourcentage de réduction pour chaque fichier compacté ou décompacté.
Version. Afficher le numéro de version et les options de compilation puis se terminer.
-# --fast --best
Réguler la vitesse de compactage en utilisant le chiffre # spécifié, où -1 ou --fast indique la méthode de réduction la plus rapide (la moins bonne réduction), et -9 ou --best indique la méthode de réduction la plus lente (la meilleure réduction). Le niveau de réduction 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.

UTILISATION AVANCÉE

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


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

alors
gunzip -c foo

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, vous pouvez obtenir un meilleur taux de compression en compactant tous les membres ensemble :


cat fichier1 fichier2 | gzip > foo.gz

compacte mieux que


gzip -c fichier1 fichier2 > foo.gz

Si vous voulez recompacter des fichiers concaténés pour obtenir une meilleure réduction, faites


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

Si un fichier compacté est constitué de plusieurs membres, la taille décompactée et le CRC rapportés par l'option --list s'appliquent uniquement au dernier membre. Si vous avez besoin de la taille décompacté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. La version GNU de tar accepte 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 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 explicitement par les paramètres explicites présents sur la ligne de commandes. Par exemple,


pour sh : GZIP="-8v --name"; export GZIP
pou csh : setenv GZIP "-8v --name"
pour MSDOS : set GZIP=-8v --name

Sur Vax/VMS, le nom de la variable d'environnement est GZIP_OPT, pour éviter un conflit avec le jeu de symboles utilisés lors de l'invocation du programme.

VOIR AUSSI

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

Le format de fichier gzip est spécifié par P. Deutsch, dans « GZIP file format specification » version 4.3, sur <ftp://ftp.isi.edu/in-notes/rfc1952.txt>, RFC Internet 1952 (mai 1996). Le format de dégonflement (deflation) zip est spécifié par P. Deutsch, dans « DEFLATE Compressed Data Format Specification » version 1.3, sur <ftp://ftp.isi.edu/in-notes/rfc1951.txt>, RFC Internet 1951 (mai 1996).

DIAGNOSTICS

La valeur de sortie est normalement 0 ; si une erreur se produit, la valeur de sortie sera 1. Si un avertissement se produit, la valeur de sortie sera 2.

Des options invalides ont été spécifiées sur la ligne de commandes.
Le fichier fourni à gunzip n'a pas été compacté.
Le fichier compacté 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 a été compacté (en utilisant LZW) par un programme qui peut traiter plus de bits que le code de décompactage sur la machine utilisée. Recompactez le fichier avec gzip, qui compacte mieux et utilise moins de mémoire.
Le fichier est supposé être déjà compacté. Renommez le fichier et réessayez.
Répondez « y » si vous voulez que le fichier de sortie soit remplacé ; répondez « n » sinon.
Une violation 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.
(Pertinent uniquement pour -v et -l.)
Quand le fichier d'entrée n'est pas un fichier régulier ou un répertoire (c'est-à-dire un lien symbolique, une socket, une FIFO ou un fichier de périphérique), il n'est pas altéré.
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 compacté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écompactage, gunzip détecte qu'il y a des déchets excédentaires à la fin des données compactées, et émet par défaut un avertissement. Vous devez utiliser l'option --quiet pour supprimer cet avertissement. Cette option peut être placée dans la variable d'environnement GZIP comme ceci :


pour sh: GZIP="-q" tar -xfz --block-compress /dev/rst0
pour csh: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0

Dans l'exemple ci-dessus, gzip est invoqué implicitement avec l'option -z de la version GNU de tar. Assurez-vous que la même taille de bloc (option -b de tar) est utilisée pour la lecture et l'écriture de données compactées sur des bandes magnétiques. (Cet exemple suppose que vous utilisiez la version GNU de tar.)

BOGUES

Le format gzip représente la taille 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 réduit :


zcat fichier.gz | wc -c

L'option --list rapporte des tailles de -1 et un crc de ffffffff si le fichier compacté est situé sur un médium à accès non aléatoire.

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

COPYRIGHT

Copyright © 1998, 1999, 2001 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 traiter ce fichier avec troff et d'imprimer le résultat, à condition que le document imprimé comporte une notice de permission identique à celle-ci à l'exception de la suppression de ce paragraphe (qui n'est pas pertinent dans la version imprimée).

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

TRADUCTION

Ce document est une traduction réalisée par Frédéric Delanoy <delanoy_f AT yahoo DOT com> le 27 octobre 2001 et révisée le 26 mai 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 1 zdiff ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.

Linux