bzip2

Auteur: Ikipou

Les commandes bzip2 et bunzip2 servent à compresser et a décompresser des fichiers.

Ces commandes compressent les fichiers à l'aide d'un algorithme de compression particulièrement efficace. L'algorithme compresse plus efficacement que les algorithmes zip, gzip, et rar. Il existe des algorithmes beaucoup plus efficace que bzip2, mais ces derniers sont beaucoup plus lents.

Utilisation

Les options de commande de bzip2 sont généralement identique à celles de gzip afin de faciliter le passage d'un format à l'autre.

Pour compresser un fichier, il suffit simplement de donner son nom après la commande.

Voici par exemple la compression du fichier blog:

$ bzip2 blog

Le fichier compressé se voit automatiquement ajouté l'extension bz2. Dans l'exemple précédent, le fichier "blog à disparu tandis qu'un fichier compressé "blog.bz2" a été créé.

Page de manuel

La très longue page de manuel de bzi2 explique l'utilisation de la commande mais aussi de nombreux points de l'implémentation. La page décrit notamment l'utilisation mémoire de bzip2, la récupération de fichier endommagé, les performances, etc

Soit un cardinal A. On dit qu'il a pour "divisant" un cardinal B si la division d'A par B n'a aucun rompu, c-à-d si A vaut B plus B plus B... (n fois). Nommons "primitif" (on aurait pu choisir "primal") un cardinal A qui n'a aucun divisant plus grand qu'un.
Montrons qu'il y a toujours un primitif plus grand qu'un cardinal pris au hasard, donc qu'ils s'accroîtront jusqu'à l'infini. Tout d'abord, nous connaissons la proposition 1 (qu'on pourrait garantir sans aucun mal si on voulait) : si A a pour divisant B (pour tout B plus grand qu'un), alors A+1 n'a jamais pour divisant B. On sait aussi (proposition 2) qu'un cardinal ayant au moins un divisant, a toujours au moins un divisant primitif (car s'il a un divisant non primitif, son divisant a aussi un divisant ; or tout divisant d'un divisant d'un cardinal produira aussi un divisant du cardinal). Supposons donc (supposition 1) qu'il y ait N primitifs au total (pour un N fini), ni plus ni moins, soit p1, p2, ..., pN. On a alors un cardinal X produit par la multiplication :
X=p1 fois p2 fois ... fois pN.
On voit qu'X a pour divisant p1, p2, ...,pN. Voyons alors par quoi nous divisons Y=X+1. Suivant la proposition 1, Y n'a pour divisant ni p1, ni p2, ..., ni pN. Il n'a donc pour divisant aucun primitif (car nous supposons ici qu'il n'y a aucun primitif à part p1, p2, ..., pN). Or, suivant la proposition 2 (par contraposition), s'il n'a aucun divisant primitif, il n'a aucun divisant du tout. On voit donc qu'il y a un cardinal Y qui n'a aucun divisant, c-à-d un primitif, qui n'apparaît pas dans p1, p2, ..., pN. D'où la contradiction qu'on voulait par rapport à la supposition 1. Conclusion : on pourra toujours bâtir un primitif plus grand qu'un cardinal fourni, ad infinitum. CQFD.
-- Graner, Nicolas