Commandes Linux : bzip2

BZIP2

Installé avec le paquet bzip2
Voir aussi : bunzip2, xz, unxz, gzip, gunzip, zip, unzip, tar et cpio
Mais aussi : bzcat, bzless, bzmore, bzgrep, bzcmp, bzdiff et bzip2recover

 

Comparatif des formats xz, gzip et bzip2

On utilisera ici un fichier référence appelé sample.tar d’une taille de 100Mo.
Le tableau ci-dessous synthétise les résultats de compression, pour chaque format et chaque niveau de compression.
Le temps de compression affiché est en secondes et la taille du fichier résultant est en Mo (ou pourcentage du fichier original).

Format → XZ GZIP BZIP2
Compression ↓ Temps Mo/% Temps Mo/% Temps Mo/%
0 5.487 19
1 7.563 17 1.796 25 10.008 19
2 11.358 16 1.883 24 10.262 18
3 18.924 16 2.038 23 10.412 17
4 31.184 15 2.135 21 10.575 17
5 46.370 14 2.628 21 11.126 17
6 54.609 14 3.320 20 11.214 17
7 59.790 14 3.917 20 11.295 17
8 71.670 14 5.537 20 11.347 16
9 164.387 13 6.088 20 11.485 16

Le meilleur compromis selon moi, du point de vue du rapport temps/taille finale d’une part, et consommation de RAM et CPU (directement liés au niveau de compression utilisé) d’autre part, apparait en rouge pour chaque format, soit :

  • XZ : niveau 1 (niveau par défaut : 6)
  • GZIP : niveau 6 (niveau par défaut : 6)
  • BZIP2 : niveau 9 (niveau par défaut : 9)

 

Afficher la version de bzip2

bzip2 --version

ou

apt-cache policy bzip2

 

Compresser une archive ou un fichier au format bzip2

bzip2 filename

Le fichier est alors compressé au format bz2 avec le niveau de compression 9 (niveau par défaut).
Toutefois, le fichier original n’est pas conservé.
Le fichier résultant sera nommé, par défaut, filename.bz2.

bzip2 -k filename

Le fichier est alors compressé au format bz2 avec le niveau de compression 9 (niveau par défaut).
Le fichier original est conservé (option -k pour keep).
Le fichier résultant sera nommé, par défaut, filename.bz2.
ex :

# du sample_3420.tar
3420	sample_3420.tar
# bzip2 -k sample_3420.tar
# du sample_3420.tar.bz2
720	sample_3420.tar.bz2
bzip2 -k9 filename

Le fichier est alors compressé au format bz2 avec le niveau de compression 9, c’est-à-dire le niveau maximal et niveau par défaut.
Le fichier original est conservé (option -k pour keep).
Le fichier résultant sera nommé, par défaut, filename.bz2.

bzip2 -c9 filename > outputfilename.bz2

Le fichier est alors compressé au format bz2 avec le niveau de compression 9 (meilleur compromis, niveau maximal et niveau par défaut).
Le fichier original est conservé (option -c pour spécifier un fichier de sortie).
Le fichier résultant sera outputfilename.bz2
ex :

# bzip2 -c9 sample.tar > result.tar.bz2

Le niveau peut être défini avec une valeur allant de 1 à 9 (cette dernière étant la valeur de compression maximale).
Plus le niveau de compression est élevé, plus la RAM et le CPU seront sollicités, d’une part, mais aussi le temps de compression augmentera, d’autre part.

 

Décompresser un fichier compressé au format bz2

bzip2 -d filename.bz2

Le fichier original est décompressé mais n’est pas conservé.
Le fichier résultant sera filename.
Equivaut à :
bunzip2 filename.bz2

bzip2 -dk filename.bz2

Le fichier original est décompressé et conservé (option -k pour keep).
Le fichier résultant sera filename.
Equivaut à :
bunzip2 -k filename.bz2

bzip2 -dc filename.bz2 > outputfilename

Le fichier original est décompressé et conservé (option -c pour spécifier un fichier de sortie).
Le fichier résultant sera outputfilename.
Equivaut à :
bunzip2 -c filename.bz2 > outputfilename

 

Mode verbeux

bzip2 -v [...]

Affichera le ratio et la vitesse de compression, et l’espace économisé.
ex :

# bzip2 -c9v sample.tar > result.tar.bz2
  sample.tar:  4.781:1,  1.673 bits/byte, 79.08% saved, 140922880 in, 29477561 out.

 

Tester l’intégrité d’un fichier compressé au format bz2

bzip2 -t filename.bz2

ex :

# bzip2 -t test.tar.bz2
bzip2: test.tar.bz2: file ends unexpectedly

You can use the `bzip2recover' program to attempt to recover
data from undamaged sections of corrupted files.

 

Afficher les caractéristiques d’un fichier compressé au format bz2

Cette option n'existe pas avec la commande bzip2, contrairement aux commandes xz et gzip

Voir la commande : 7z l filename.bz2

 

Concaténer des fichiers à un fichier bz2 existant

bzip2 -c filename1 > outputfilename.bz2
bzip2 -c filename2 >> outputfilename.bz2

Equivalent de :

bzip2 -c filename1 filename2 > outputfilename.bz2

Equivaut à :
cat filename1 filename2 | bzip2 > outputfilename.bz2
Utile pour ajouter des logs à un fichier de logs central.
ex :

# bzip2 -c logfile1.txt > fulllogs.bz2
# bzip2 -c logfile2.txt >> fulllogs.bz2

 

Améliorer le taux de compression d’un fichier gz existant

bzip2 -cd filename.bz2 | bzip2 -9 > newfilename.bz2

 

Afficher la progression d’une compression ou décompression

Compression : Progression non graphique
pv archive.tar | bzip2 -c9 > archive.tar.bz2

ex :

# pv sample.tar | bzip2 -c9 > sample.tar.bz2
bz2_nograph1


Compression : Progression graphique
(pv -n archive.tar | bzip2 -c9 > archive.tar.bz2) 2>&1 | dialog --gauge "text" height width

ex :

# (pv -n sample.tar | bzip2 -c9 > sample.tar.bz2) 2>&1 | dialog --gauge "Progression..." 7 50
bz2_graph1


Décompression : Progression non graphique
pv archive.tar.bz2 | bzip2 -dc > archive.tar

ex :

# pv sample.tar.bz2 | bzip2 -dc > sample.tar
bz2_nograph2


Décompression : Progression graphique
(pv -n archive.tar.bz2 | bzip2 -dc > archive.tar) 2>&1 | dialog --gauge "text" height width

ex :

# (pv -n sample.tar.bz2 | bzip2 -dc > sample.tar) 2>&1 | dialog --gauge "Progression..." 7 50
bz2_graph2


Fermer le menu
%d blogueurs aiment cette page :