5.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. Vous pourrez aussi utiliser d'autres outils de compression tels que zip, arj ou rar (bien que rarement utilisés sous GNU/Linux).

Á l'origine, 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 gzip ou 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 :

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. 2001.
http://www.mandrakelinux.com/