GZIP(1)
 

NOM

gzip, gunzip, zcat - compresse et décompresse des fichiers

 

SYNOPSIS

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

DESCRIPTION

Gzip réduit la taille des fichiers donnés en utilisant le codage Lempel-Ziv (LZ77). Chaque fois que c'est possible, chaque fichier est remplacé par un autre qui possède l'extension .gz avec le même possesseur, droits d'accès et date de modification (par défaut, l'extension est -gz pour VMS et z pour MSDOS, OS/2 FAT, Windows NT FAT et Atari). Si aucun fichier n'est donné ou si un nom de fichier est "-", l'entrée standard est compressée vers la sortie standard. Gzip ne cherche à compresser que les vrais fichiers, pas les liens symboliques.

Si le nom d'un fichier compressé est trop long pour le système de fichier, Gzip le tronque. Il n'essaiera de tronquer que les parties de plus de trois caractères (une partie étant délimitée par des points). Si le nom n'est constitué que de petites parties, la plus longue est tronquée. Par exemple, si les noms de fichiers sont limités à 14 caractères, gzip.msdos.exe est compressé en gzi.msd.exe.gz. Les noms ne sont pas tronqués dans les systèmes ne limitant pas leur longueur.

Par défaut, gzip conserve le nom original et les dates du fichier dans le fichier compressé. Ils sont utilisés, lors de la décompression, par l'option -N. Cela est utile lorsque le nom est tronqué ou que les dates ne sont pas conservées lors de transferts.

Les fichiers compressés peuvent être restaurés vers leurs formes originales en utilisant gzip -d ou gunzip ou zcat. Si le nom original d'un fichier compressé n'est pas acceptable sur le système, un nouveau nom, légal, est construit à partir de celui-ci.

gunzip demande une liste de fichier sur sa ligne de commandes. Il remplace ceux dont le nom se termine par .gz, -gz, .z, -z, _z ou .Z et commence par le nombre magique correct par un fichier décompressé mais sans l'extension. Il reconnait aussi les extensions spéciales .tgz et .taz comme étant le racourcis de .tar.gz et .tar.Z. Lors de la compression, gzip utilise .tgz au lieu de tronquer un fichier avec l'extension .tar.

gunzip peut actuellement décompresser les fichiers créés par gzip, zip, compress, compress -H et pack. La détection du format est automatique. Pour les deux premiers, gunzip recherche un CRC de 32 bits. Pour pack, il recherche la taille non-compressée. Le format compress standard n'a pas été conçu pour permettre des vérifications. Cependant, gunzip est parfois capable de détecter un mauvais fichier .Z. Si vous avez une erreur lors de la décompression d'un fichier .Z, ne présumez pas de la validité de celui-ci simplement parce que uncompress ne s'est pas plaint. Comme il ne vérifie pas ses entrées, il peut joyeusement ressortir n'importe quoi. Le format SCO compress -H (méthode lzh) n'inclue pas de CRC mais permet quelques vérifications.

Les fichiers créés par zip ne peuvent être décompressés par gzip que s'ils sont d'un seul tenant et compressés avec la méthode "deflation". Cette caractéristique intentionnelle sert à aider les conversions de fichiers tar.zip vers le format tar.gz. Pour extraire un fichier fragmenté, utilisez unzip au lieu de gunzip.

zcat est identique à gunzip -c. (sur certains systèmes, zcat peut être installé sous le nom de gzcat afin de conserver le lien original vers compress). gzcat décompresse soit une liste de fichiers sur la ligne de commandes, soit son entrée standard et écrit les données décompressées sur la sortie standard. gzcat décompresse les fichiers possédant le nombre magique correct, qu'ils aient le suffixe .gz ou non.

Gzip utilise l'algorithme Lempel-Ziv, comme zip et PKZIP. Le taux de compression obtenu dépend de la taille de l'entrée et de la répartition des sous-chaines courantes. Par exemple, du texte tel que du code source ou du français est réduit de 60 à 70%. La compression est généralement meilleure que celles effectuées par LZW (comme avec compress), par le codage Huffman (comme avec pack) ou par le codage adaptatif Huffman (comme aveccompact).

La compression est toujours effectuée même si le fichier compressé est plus gros que le fichier original. Le pire des cas est quelques octets pour l'en-tête gzip plus des octets chaque 32 ko ou bien un taux d'expansion de 0,015% pour les gros fichiers. Notez que le nombre de blocs disque utilisé n'augmente presque jamais. gzip préserve le mode, le propriétaire et les dates des fichiers à la compression et à la décompression.

 

OPTIONS

-a --ascii

mode texte ASCII : convertit les sauts-de-ligne suivant les conventions locales. Cette option n'est supportée que par quelques systèmes non-Unix. Pour MSDOS, CR LF est converti en LF à la compression et LF est converti en CR LF à la décompression.

 

-c --stdout --to-stdout

Ecrit sur la sortie standard, laissant le fichier original inchangé. S'il y a plusieurs fichiers à traiter, la sortie est une suite de segments compressés indépendants. Pour une meilleur compression, concaténez les fichiers avant de les compresser.

 

-d --decompress --uncompress

Décompresse.

 

-f --force

Force la compression ou décompression même si le fichier a plusieurs liens ou si le fichier correspondant existe déja ou si les données compressées sont lues ou écrites sur un terminal. Si les données en entrée ne sont pas dans un format reconnu par gzip et si l'option --stdout est aussi donnée, elles sont copiées telles quel sur la sortie standard : laisse zcat se comporter comme cat. Si -f n'est pas donné et s'il ne tourne pas déja en tâche de fond, gzip demande s'il doit vérifier si un fichier existant doit être écrasé.

 

-h --help

Affiche un message d'aide puis quitte.

 

-l --list

Pour chaque fichier compressé, liste les champs suivants :

Taille compressée : taille des fichiers compressés.

Taille décompressée : taille des fichiers décompressés.

taux : le taux de compression (0,0% s'il est inconnu).

nom décompressé : nom du fichier décompressé.

La taille décompressée vaut -1 dans le cas des fichiers dans un format autre que gzip (par exemple au format .Z). Pour connaitre cette taille, utilisez :

zcat fichier.Z | wc -c

Combiné à l'option --verbose, les champs suivants sont aussi affichés :

méthode : la méthode de compression.

crc : le CRC 32 bits des données décompressées.

date et heure : celles des fichiers décompressés.

Les méthodes de compression actuellement supportées sont deflate, compress, lzh (SCO compress -H) et pack. Le crc vaut ffffffff pour les fichiers qui ne sont pas au format gzip.

Avec --name, le nom, les dates et heures, s'ils existent, sont stockés dans le fichier compressé.

Avec --verbose, la taille totale et le taux de compression sont aussi affichés, tant qu'elles sont connues. Avec --quiet, le titre et les lignes ne sont pas affichés.

 

-L --license

Affiche la licence gzip puis quitte.

 

-n --no-name

Lors de la compression, n'enregistre pas, par défaut, le nom et les dates du fichier original. (le nom original est toujours sauvegardé s'il doit être tronqué). A la décompression, ne reprend pas le nom original, s'il existe, mais retire simplement le suffixe gzip du fichier compressé et ne reprend pas non plus les dates originales, si elles existent, mais reprend celles du fichier compressé. Cette option est celle par défaut pour la décompression.

 

-N --name

Lors de la compression, sauvegarde le nom et les dates originales du fichier (option par défaut). Lors de la décompression, ces informations sont restaurées si elles existent. Ceci est utile sur les systèmes qui limitent la taille du nom des fichiers ou bien si les dates disparaissent suite à un transfert.

 

-q --quiet

N'affiche aucun avertissement.

-r --recursive

Parcours l'arborescence de façon récursive. Si un ou plusieurs des noms donnés sur la ligne de commandes sont des répertoire, gzip les parcourera et compressera tous les fichiers qu'il trouvera (ou les décompressera dans le cas de gunzip).

-S .suf --suffix .suf

Utilise le suffixe .suf au lieu de .gz. Tout suffixe peut être donné mais ceux autre que .z et .gz peuvent créer des confusions lors de passage des fichiers vers d'autres systèmes. Un suffixe vide incite gunzip à décompresser les fichiers donnés sans tenir compte de leur suffixe, comme dans :

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

Les précédentes versions de gzip utilent le suffixe .z. Celà a été changé pour éviter les conflits avec pack(1).

-t --test

Teste. Vérifie l'intégrité du fichier compressé.

-v --verbose

Verbeux. Affiche le nom et le pourcentage de réduction de chaque fichier compressé ou décompressé.

-V --version

Version. Affiche le numéro de version et les options de compilation, puis quitte.

-# --fast --best

Régule la vitesse de compression en utilisant le numéro #, où -1 ou --fast indique la méthode compression la plus rapide (moins compressé) et -9 ou --best la méthode la plus lente (meilleure compression). Par défaut, le niveau de compression est à -6 (compromis entre compression et vitesse).

 

UTILISATION AVANCÉE

Plusieurs fichiers compressés peuvent être rassemblés en un seul. Dans ce cas, gunzip les extrait chacun leur tour. Par exemple,

gzip -c fichier1 > foo.gz

gzip -c fichier2 >> foo.gz

puis

gunzip -c foo

équivaud à

cat fichier1 fichier2

Si un des deux fichiers est endommagé, l'autre peut tout de même être récupéré (si le fichier endommagé est retiré). Cependant, vous pouvez obtenir une meilleure compression en traitant les fichiers en une fois :

cat file1 file2 | gzip > foo.gz

permet de mieux compresser que

gzip -c file1 file2 > foo.gz

Si vous voulez recompresser des fichiers concaténés afin d'obtenir encore une meilleure compression, utilisez :

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

Si un fichier compressé est constitué de plusieurs membres, la taille décompressée et le CRC donnés par l'option --list ne s'applique qu'au dernier. Si vous voulez la taille décompressée de tous les membres, utilisez :

gzip -cd file.gz | wc -c

Si vous souhaitez créer un seul fichier à partir de plusieurs afin de pouvoir, par exemple, les décompresser indépendament les uns des autres, utilisez un programme d'archivage tel que tar ou zip. GNU tar possede l'option -z qui permet d'invoquer gzip de façon transparente. gzip est conçu pour être un complément de tar, pas un remplaçant.

 

ENVIRONNEMENT

La variable d'environnement GZIP peut contenir plusieurs options de gzip. Elles sont d'abord interprétées puis éventuellement remplacées par les paramètres de la ligne de commandes. Par exemple :

	    Pour sh:	GZIP="-8v --nom"; export GZIP
	    Pour csh:	setenv GZIP "-8v --nom"
	    Pour MSDOS: set GZIP=-8v -- nom

Sur Vax/VMS, le nom de la variable est GZIP_OPT, pour éviter les conflits avec le nom d'appel du programme.

 

VOIR AUSSI

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

 

DIAGNOSTIQUES

La valeur retournée est généralement 0. Si une erreur a lieu, la valeur est 1. Si un avertissement apparaît, la valeur est 2.

Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]

Des options erronées ont été données sur la ligne de commandes.

file: not in gzip format

Le fichier indiqué à gunzip n'est pas un fichier compressé.

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

Le fichier compressé a été endommagé. Les données jusqu'à l'endroit endommagé peuvent être récupérées avec :

zcat fichier > recover
file: compressed with xx bits, can only handle yy bits

Le fichier file a été compréssé (avec LZW) par un programme qui peut traiter plus de bits que le code de décompression de la présente machine. Recompressez le fichier avec gzip qui compacte mieux et utilise moins de mémoire.

file: already has .gz suffix -- no change

Le fichier assure qu'il est déja compressé. Renommez-le et recommencez.

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

Répondez "y" si vous voulez que le fichier existant soit remplacé, "n" sinon.

gunzip: corrupt input

Une violation SIGSEGV a été détectée. Celà indique généralement que le fichier a été corrompu.

xx.x%

Pourcentage de données déja compressée (dans le cas de l'option -v and -l).

-- not a regular file or directory: ignored

Lorsque le fichier en entrée n'est pas un fichier ou un répertoire normal (par exemple un lien symbolique, un socket, FIFO ou un fichier de périférique), le programme n'y touche pas.

-- has xx other links: unchanged

Le fichier en entrée a des liens, le programme n'y touche pas. Voir ln(1) pour plus d'informations. Utilisez l'option -f pour forcer la compression des fichiers liés.

 

AVERTISSEMENTS

Lors de l'écriture de données sur bande, il est généralement nécessaire de complèter celles-ci par des zéros jusqu'à la fin d'un bloc. Lors de la lecture, tout le bloc est donné à gunzip pour la décompression. Celui-ci détecte ces ajouts et émet un avertissement par défaut. Utilisez l'option --quiet pour le supprimer. Elle peut aussi être définie dans les variables d'environnement de GZIP de cette façon :

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 implicitement appelé par l'option -z de GNU tar. Assurez-vous que la même taille de blocs (-b pour tar) est utilisée pour la lecture et l'écriture des données compressées sur bande (cet exemple considère que vous utilisez la version GNU de tar).

 

BUGS

L'option --list rapporte des tailles incorrectes au delà de 2 giga-octets. Elle donne une taille de -1 et crc à ffffffff si le fichier compressé est sur un support où la recherche est impossible.

Dans de rares cas, l'option --best ne compresse pas mieux que le niveau défaut (-6). Sur des fichiers très redondants, compress donne de meilleurs résultats que gzip.

 

AUTEURS

Traduction par Guillain Seuillot le 12 mai 2000


NOM | SYNOPSIS | DESCRIPTION | OPTIONS | UTILISATION AVANCEE | ENVIRONNEMENT | VOIR AUSSI | DIAGNOSTIQUES | AVERTISSEMENTS | BUGS | AUTEURS