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 Lem- pel-Ziv (LZ77). Quand 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 modifica- tion. (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 spécifié, 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 portant sur la longueur des noms de fichiers. Par défaut, gzip conserve le nom du fichier original et son horodate 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'horodate n'a pas été préservée 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 rem- place chaque fichier dont le nom se termine par .gz, -gz, .z, -z, _z or .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 exten- sion .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écom- pacté. 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 offus- quer. 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égonfle- ment » (deflation). Cette fonctionnalité n'est prévue que pour faciliter la conversion de fichiers .tar.zip vers le format .tar.gz. 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 com- press.) 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'aug- mente presque jamais. gzip préserve les modes, permissions et horo- dates des fichiers qu'il compacte ou décompacte. OPTIONS -a --ascii Mode texte ascii ; convertit les fins de lignes en utilisant les conventions locales. Cette option n'est supportée que sur cer- tains 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écom- pactage. -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 sor- tie consiste en une séquence de membres compactés indépendam- ment. Pour obtenir un meilleur taux de compression, concaténez tous les fichiers d'entrée avant de les compacter. -d --decompress --uncompress Décompacter. -f --force Forcer le compactage ou le décompactage même si le fichier possède plusieurs liens matériels, ou si le fichier correspon- dant 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 --std- out 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 exis- tant doit être écrasé ou non. -h --help Afficher un écran d'aide et se terminer. -l --list 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 supportées 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éduc- tion 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. -L --license Afficher la licence d'utilisation de gzip et se terminer. -n --no-name Lors du compactage, ne pas sauvegarder les noms et horodates 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. -N --name Lors du compactage, toujours sauvegarder les noms et horodates 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'horodate a été perdue à 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 compactera tous les fichiers qu'il y trouve (ou les décompactera dans le cas de gunzip). -S .suf --suffix .suf Utiliser le suffixe .suf 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 trans- fert 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é changé pour éviter un conflit avec pack(1). -t --test Tester. Vérifier l'intégrité du fichier compacté. -v --verbose Mode bavard. Afficher le nom et le pourcentage de réduction pour chaque fichier compacté ou décompacté. -V --version Version. Afficher le numéro de version et les options de compi- lation 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.-à-d. 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 com- pactant 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écom- pacté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 supporte 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), com- press(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 , RFC Internet 1952 (mai 1996). Le format de dégon- flement (deflation) zip est spécifié par P. Deutsch, dans « DEFLATE Compressed Data Format Specification » version 1.3, sur , 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. Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] Des options invalides ont été spécifiées sur la ligne de comman- des. fichier: not in gzip format Le fichier fourni à gunzip n'a pas été compacté. fichier: Corrupt input. Use zcat to recover some data. 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: 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écompactage sur la machine utilisée. Recompactez le fichier avec gzip, qui compacte mieux et utilise moins de mémoire. fichier: already has .gz suffix -- no change Le fichier est supposé être déjà compacté. Renommez le fichier et réessayez. fichier already exists; do you wish to overwrite (y or n)? Répondez « y » si vous voulez que le fichier de sortie soit rem- placé ; répondez « n » sinon. gunzip: corrupt input 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. xx.x% Pourcentage du fichier d'entrée économisé par le compactage. (Pertinent uniquement pour -v et -l.) -- not a regular file or directory: ignored Quand le fichier d'entrée n'est pas un fichier régulier ou un répertoire (c.-à-d. un lien symbolique, une socket, une FIFO ou un fichier de périphérique), il n'est pas altéré. -- 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 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 com- pacté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 du tar GNU. 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 incor- rects 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 sup- pression 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 Frédéric Delanoy , 2002. Linux GZIP(1)