Les commandes gzip/gunzip, bzip2/bunzip2 compressent/décompressent chaque fichier passé en argument sur la ligne de commande. La commande bzip2 possède un meilleur taux de compression. Ces commandes se trouvent en standard sur les systèmes Linux et peuvent s'installer sur les systèmes UNIX si elles ne sont pas déjà présentes. La commande gzip produit l'extension .gz et la commande bzip2 produit l'extension .bz2.
Syntaxe de gzip
Compression :
gzip [options] [fichiers ...]
Décompression :
gunzip [options] [fichiers ...]
zcat [options] [fichiers ...]
Principales options :
-c : Envoie le résultat sur la sortie standard. La commande gunzip -c est équivalente à la commande zcat.
-t : Tester la validité de l'archive.
Si le nom de fichier est omis, les données à traiter sont lues sur l'entrée standard.
Exemple
Compression du fichier mon_fichier4. L'original est remplacé par le fichier compressé.
$ ls -lh mon_fichier4
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
$ gzip mon_fichier4
$ ls -lh mon_fichier4.gz
-rw-r--r-- 1 root root 2,1M 25 mai 16:36 mon_fichier4.gz
$
Décompression. Le fichier d'origine est restitué et remplace le fichier compressé.
$ gunzip mon_fichier4.gz
$ ls -lh mon_fichier4*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
$
Compression du fichier avec envoi du flux sur la sortie standard. Cette méthode permet de conserver le fichier d'origine.
$ gzip -c mon_fichier4 > mon_fichier4.gz
$ ls -lh mon_fichier4*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
$
Décompressé en conservant le fichier compressé.
$ gunzip -c mon_fichier4.gz > mon_fichier5
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
$
Idem mais avec la commande zcat.
$ zcat mon_fichier4.gz > mon_fichier6
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6,6M 25 mai 16:46 mon_fichier6
$
Les commandes bzip2, bunzip2 et bzcat fonctionnent de manière similaire avec une légère différence au niveau des options.
Syntaxe de bzip2
Compression :
bzip2 [options] [fichiers ...]
Décompression :
bunzip2 [fichiers ...]
bzip2 -d [options] [fichiers ...]
bzcat [options] [fichiers ...]
Principales options :
-c : Envoie le résultat sur la sortie standard. La commande bzip2 -dc est équivalente à la commande bzcat.
-d : Décompression
-t : Tester la validité de l'archive.
Exemple
Compression du fichier mon_fichier4. La compression avec bzip2 est meilleure qu'avec gzip.
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6,6M 25 mai 16:46 mon_fichier6
$ bzip2 -c mon_fichier4 > mon_fichier4.bz2
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 1,2M 25 mai 16:54 mon_fichier4.bz2
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6,6M 25 mai 16:46 mon_fichier6
$
Analyse des différentes compressions
$ wc -c mon_fichier4
6903921 mon_fichier4
$ wc -m mon_fichier4
6903921 mon_fichier4
$ ls -l mon_fichier*
-rw-r--r-- 1 root root 6903921 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 1207370 25 mai 16:54 mon_fichier4.bz2
-rw-r--r-- 1 root root 2129319 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6903921 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6903921 25 mai 16:46 mon_fichier6
$
Test réalisé avec un fichier contenant uniquement des caractères.
Le fichier mon_fichier4 contient 6 903 921 caractères et par conséquent une taille de 6 903 921 octets.
Compression avec gzip : Le fichier a été réduit à une taille de 2 129 319 octets. Ce qui représente une diminution de 69,16 %
Compression avec bzip2 : Le fichier a été réduit à une taille de 1 207 370 octets. Ce qui représente une diminution de 82,51%