16.6. bzip2 et gzip : compression de données

Vous vous souvenez que nous avons déjà parlé de ces deux programmes quand nous avons évoqué tar. Contrairement à WinZip sous Windows, l'archivage et la compression sont faits en utilisant deux programmes séparés (tar pour l'archivage, et les deux programmes que nous allons maintenant présenté pour activer la compression, bzip2 et gzip.

D'une part, bzip2 a été écrit en tant que remplacement pour gzip. Ses possibilités de compression sont en général meilleures. Mais, de l'autre, il consomme plus de mémoire. La raison pour laquelle gzip est encore là est qu'il est encore beaucoup plus répandu que bzip2. Peut-être qu'un jour bzip2 remplacera complètement gzipou peut-être pas ?

Les deux commandes ont une syntaxe similaire :

gzip [options] [fichier(s)]

Si aucun nom de fichier n'est donné, gzip comme bzip2 attendra des données sur l'entrée standard et enverra le résultat sur la sortie standard. Les deux programmes sont donc en fait utilisables avec des tubes. Les deux commandes ont aussi un ensemble d'options similaires :

  1. -1, ..., -9 : règle la capacité de compression ; plus le nombre est haut, plus la compression sera élevée, mais mieux signifie aussi plus lent : on n'a rien sans rien.

  2. -d : décompresse un ou des fichier(s); c'est l'équivalent de la commande gunzip ou de bunzip2.

  3. -c : envoie de la compression/décompression des fichiers donnés en paramètre sur la sortie standard.

Attention! Par défaut, si vous n'utilisez pas l'option -c, gzip et bzip2 effaceront le ou les fichier(s) qu'ils ont compressés (ou décompressés). Vous pouvez éviter cela avec bzip2 en utilisant l'option -k. gzip, cependant, ne possède pas une telle option!

Quelques exemples seront utiles. Supposons que vous vouliez compresser tous les fichiers se terminant par .txt dans le répertoire courant avec bzip2, utilisez alors :

$ bzip2 -9 *.txt

Supposons que vous vouliez partager votre archive d'images avec quelqu'un, mais qu'il ne dispose pas de bzip2, mais uniquement de gzip. Nul besoin de décompresser l'archive et de la recompresser ! Décompressez-la sur la sortie standard, utilisez un tube, compressez depuis l'entrée standard et redirigez le résultat vers la nouvelle archive :

bzip2 -dc images.tar.bz2 | gzip -9 >images.tar.gz

Et voilà le travail ! Vous pourriez d'ailleurs avoir tapé bzcat au lieu de bzip2 -dc. Il existe un équivalent pour gzip mais son nom est zcat, et non pas gzcat. Vous disposez aussi de bzless (resp. zless) si vous voulez directement visualiser des fichiers compressés sans avoir à les décompresser avant. Comme exercice, essayez de trouver la commande que vous auriez à taper pour voir des fichiers sans les décompresser, et sans utiliser bzless or zless ... :-)

 

 


Tux sur Étoile de MandrakeSoft Linux est une marque déposée de Linus Torvalds. Toutes les autres marques et copyrights sont la propriété de leurs auteurs respectifs.
Sauf mention contraire, tout le contenu de ces pages et toutes les images sont Copyright MandrakeSoft S.A. et MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/