Provided by: manpages-fr_4.28.0-2_all 

NOM
bzip2, bunzip2 - compresseur de fichiers par tri de blocs, v1.0.8
bzcat - décompresse les fichiers sur la sortie standard
bzip2recover - récupère des données de fichiers bzip2 endommagés
SYNOPSIS
bzip2 [ -cdfkqstvzVL123456789 ] [ noms_fichiers ... ]
bzip2 [ -h|--help ]
bunzip2 [ -fkvsVL ] [ noms_fichiers ... ]
bunzip2 [ -h|--help ]
bzcat [ -s ] [ noms_fichiers ... ]
bzcat [ -h|--help ]
bzip2recover nom_fichier
DESCRIPTION
bzip2 compresse des fichiers en utilisant l'algorithme de compression de texte par tri de blocs de
Burrows-Wheeler et le codage d'Huffman. La compression est généralement nettement meilleure que celle
atteinte par des compresseurs plus conventionnels basés sur LZ77/LZ78 et approche les performances de la
famille des compresseurs statistiques PPM.
Les options de ligne de commandes sont délibérément très similaires à celles de GNU gzip, mais elles ne
sont pas identiques.
bzip2 attend une liste de noms de fichiers pour accompagner les options de ligne de commandes. Chaque
fichier est remplacé par une version compressée de lui-même, avec le nom « nom_original.bz2 ». Chaque
fichier compressé a la même date de modification, les mêmes permissions et, quand c'est possible, les
mêmes propriétés que celles du fichier original, de sorte que ces caractéristiques peuvent être
correctement restaurées au moment de la décompression. Le traitement du nom du fichier est naïf dans le
sens qu'il n'y a pas de mécanisme pour préserver les noms, permissions, propriétés et dates des fichiers
situés dans des systèmes de fichiers où ces concepts font défaut, ou qui souffrent de restrictions
strictes sur la longueur des noms de fichiers, comme MS-DOS.
bzip2 et bunzip2, par défaut, n'écraseront pas les fichiers existants. Si vous voulez que cela se
produise, utilisez l'option -f.
Si aucun nom de fichier n'est indiqué, bzip2 compresse de l'entrée standard vers la sortie standard. Dans
ce cas, bzip2 n'écrira pas la sortie compressée sur un terminal, puisque cela serait incompréhensible et
donc inutile.
bunzip2 (ou bzip2 -d) décompresse tous les fichiers spécifiés. Les fichiers qui n'ont pas été créés par
bzip2 seront détectés et ignorés et un avertissement sera émis. bzip2 tente de deviner le nom du fichier
pour le fichier décompressé à partir de celui du fichier compressé de la manière suivante :
nom_fichier.bz2 devient nom_fichier
nom_fichier.bz devient nom_fichier
nom_fichier.tbz2 devient nom_fichier.tar
nom_fichier.tbz devient nom_fichier.tar
autre_nom devient autre_nom.out
Si le nom du fichier ne se termine pas par une des terminaisons reconnues, .bz2, .bz, .tbz2 ou .tbz,
bzip2 signale qu'il ne peut pas deviner le nom du fichier original et utilise le nom d'origine en lui
ajoutant .out.
Comme pour la compression, si aucun nom de fichier n'est fourni, la commande décompresse de l'entrée
standard vers la sortie standard.
bunzip2 décompressera correctement un fichier qui est la concaténation de deux fichiers compressés ou
plus. Le résultat est la concaténation des fichiers non compressés correspondants. Le test d'intégrité
(-t) des fichiers compressés concaténés est aussi prise en charge.
Il est également possible de compresser ou décompresser vers la sortie standard en fournissant l'option
-c. Plusieurs fichiers peuvent être compressés ou décompressés ainsi. Les sorties résultantes sont
envoyées de façon séquentielle à la sortie standard. La compression de plusieurs fichiers de cette
manière génère un flux contenant la représentation des divers fichiers compressés. Un flux de ce type ne
peut être décompressé correctement que par bzip2 version 0.9.0 ou ultérieure. Les versions antérieures de
bzip2 s'arrêtent après la décompression du premier fichier du flux.
bzcat (ou bzip2 -dc) décompresse tous les fichiers spécifiés vers la sortie standard.
bzip2 lira les arguments à partir des variables d'environnement BZIP2 et BZIP, dans cet ordre, et les
traitera avant tout argument lu à partir de la ligne de commande. Cela offre une façon pratique de
fournir des arguments par défaut.
La compression est toujours effectuée, même si le fichier compressé est légèrement plus grand que le
fichier original. Les fichiers de moins d'une centaine d'octets ont tendance à s'agrandir dans la mesure
où le mécanisme de compression comporte une surcharge constante de l'ordre de 50 octets. Des données
aléatoires (y compris la sortie de la plupart des compresseurs de fichiers) sont codées à environ
8,05 bits par octet, aboutissant à une expansion autour de 0,5 %.
En tant que vérification interne, bzip2 utilise des CRC 32 bits pour s'assurer que la version
décompressée d'un fichier est identique au fichier d'origine. Ceci permet une protection contre la
corruption des données compressées et contre des bogues non détectés de bzip2 (heureusement très
improbable). La probabilité qu'une corruption de données passe inaperçue est infime, environ une chance
sur 4 milliards pour chaque fichier compressé. Soyez conscients, toutefois, que la vérification se
produit pendant la décompression, et qu'elle ne peut donc vous informer que lorsque quelque chose s'est
mal passé. Cela ne peut pas vous aider à récupérer les données non compressées d'origine. Vous pouvez
utiliser bzip2recover pour essayer de récupérer des données de fichiers endommagés.
Valeurs de retour : 0 pour une sortie normale, 1 pour des problèmes d'environnement (fichier non trouvé,
options invalides, erreurs d'entrée/sortie, etc.), 2 pour indiquer un fichier compressé corrompu, 3 pour
une erreur de consistance interne (un bogue, par exemple) qui a fait paniquer bzip2.
OPTIONS
-c --stdout
Compresser ou décompresser vers la sortie standard.
-d --decompress
Forcer la décompression. bzip2, bunzip2 et bzcat constituent en fait le même programme, et la
décision quant aux actions à entreprendre est déterminée sur la base du nom utilisé. Cette option
annule ce mécanisme et force bzip2 à décompresser.
-z --compress
Le complément de -d : force la compression, quel que soit le nom d'invocation.
-t --test
Vérifier l'intégrité des fichiers spécifiés, mais ne pas les décompresser. Cela réalise réellement
une décompression d'essai et jette le résultat.
-f --force
Forcer l'écrasement des fichiers en sortie. Normalement, bzip2 n'écrasera pas les fichiers de
sortie préexistants. L'option force également bzip2 à briser les liens physiques (hard links) de
fichiers, ce qu'il ne ferait pas autrement.
Normalement, bzip2 refuse de décompresser des fichiers qui ne possèdent pas les octets magiques
d'en-tête corrects. Néanmoins, s'il est forcé (-f), néanmoins, il passe ces fichiers sans les
modifier. C'est ainsi que GNU gzip se comporte.
-k --keep
conserver (ne pas supprimer) les fichiers d'entrée durant la compression ou la décompression.
-s --small
Réduire l'utilisation de la mémoire pour la compression, la décompression et la vérification. Les
fichiers sont décompressés et testés en utilisant un algorithme modifié qui requiert uniquement
2,5 octets par bloc d'un octet. Cela signifie que tout fichier peut être décompressé dans 2 300 Ko
de mémoire, même s'il le sera à une vitesse deux fois plus lente que la vitesse normale.
Durant la compression, -s sélectionne une taille de bloc de 200 Ko, ce qui limite l'utilisation de
mémoire à environ le même nombre, aux dépens du coefficient de compression. Bref, si votre machine
possède peu de mémoire vive (8 Mo ou moins), utilisez -s pour tout ce que vous faites. Voir
GESTION DE LA MÉMOIRE plus bas.
-q --quiet
Supprimer les messages d'avertissement non essentiels. Les messages se rattachant aux erreurs
d'E/S et à d'autres événements critiques ne sont pas supprimés.
-v --verbose
Mode bavard – montre le coefficient de compression pour chaque fichier traité. Des -v
supplémentaires augmentent le niveau de détail, en affichant des tas d'informations qui sont
principalement utiles à des fins de diagnostic.
-h --help
Afficher un message d'aide puis quitter.
-L --license -V --version
Afficher la version du logiciel, les termes de sa licence et les conditions d'utilisation.
-1 (ou --fast) à -9 (ou --best)
Fixer la taille de bloc à 100, 200, ... 900 ko pendant la compression. Cette option n'a aucun
effet sur la décompression. Voir GESTION DE LA MÉMOIRE ci-dessous. Les alias --fast et --best
existent principalement pour la compatibilité avec GNU gzip. En particulier, --fast ne rend pas
les traitements significativement plus rapides. Et --best sélectionne simplement le comportement
par défaut.
-- Traite tous les arguments suivants comme des noms de fichier, même s'ils débutent par un tiret. Il
est ainsi possible de traiter des fichiers dont le nom débute par un tiret, par exemple « bzip2
-- -mon_fichier ».
--repetitive-fast --repetitive-best
Ces options sont redondantes dans les versions 0.9.5 et ultérieures. Elles fournissent un contrôle
assez grossier sur le comportement de l'algorithme de tri dans les versions antérieures, ce qui
était parfois utile. Les versions 0.9.5 et ultérieures disposent d'un algorithme amélioré qui rend
l'usage de ces options inutile.
GESTION DE LA MÉMOIRE
bzip2 compresse des fichiers importants par blocs. La taille de bloc affecte à la fois le coefficient de
compression atteint et la quantité de mémoire nécessaire pour la compression et la décompression. Les
options -1 à -9 précisent la taille de bloc utilisée, de 100 000 octets à 900 000 octets (par défaut)
respectivement. Au moment de la décompression, la taille de bloc utilisée pour la compression est lue à
partir de l'en-tête du fichier compressé, et bunzip2 s'alloue ensuite juste assez de mémoire pour
décompresser le fichier. Puisque les tailles de blocs sont conservées dans les fichiers compressés, il
s'ensuit que les options -1 à -9 ne sont pas pertinentes et qu'elles sont donc ignorées durant la
décompression.
Les besoins en mémoire de la compression et de la décompression, en octets, peuvent être estimés à :
Compression : 400 k + ( 8 x taille de bloc )
Décompression : 100 k + ( 4 x taille de bloc ), ou
100 k + ( 2.5 x taille de bloc )
Des largeurs de blocs plus importantes voient les bénéfices marginaux retirés diminuer rapidement.
L'essentiel de la compression provient des deux ou trois cents premiers ko de la taille de bloc, un fait
à retenir quand on utilise bzip2 sur de petites machines. Il est également important de savoir que les
exigences mémoire de la décompression sont fixées au moment de la compression par le choix d'une taille
de bloc.
Pour les fichiers compressés avec la taille de bloc par défaut de 900 Ko, bunzip2 aura besoin d'environ
3 700 Ko pour la décompression. Pour permettre la décompression de tout fichier sur une machine avec 4 Mo
de RAM, bunzip2 possède une option pour décompresser en n'utilisant que la moitié environ de ces
3 700 Ko, à savoir à peu près 2 300 Ko. Malheureusement, la vitesse de décompression est également
réduite de moitié, et donc vous ne devriez utiliser cette option (-s) qu'en cas de nécessité absolue.
En général, essayez d'utiliser la taille de bloc mémoire la plus grande permise, puisque cela maximise la
qualité de la compression atteinte. Les vitesses de compression et de décompression ne sont en fait pas
affectées par la taille de bloc.
Un autres aspect significatif s'applique aux fichiers qui peuvent tenir dans un seul bloc – c'est-à-dire
la plupart des fichiers que vous rencontrez en utilisant une grande taille de bloc. La quantité réelle de
mémoire utilisée est proportionnelle à la taille du fichier, puisque le fichier est plus petit qu'un
bloc. Par exemple, compresser un fichier de 20 000 octets avec l'option -9 forcera le compresseur à
allouer environ 7 600 Ko de mémoire, mais n'en utilisera réellement que 400 Ko + 20 000 * 8 = 560 Ko. De
même, le décompresseur allouera 3 700 Ko mais n'utilisera que 100 Ko + 20 000 * 4 = 180 Ko.
Voici une table qui résume l'utilisation maximale de la mémoire pour différentes tailles de blocs, ainsi
que la taille compressée totale de 14 fichiers du Calgary Text Compression Corpus totalisant
3 141 622 octets. Cette table donne un certain aperçu sur l'évolution de la compression avec la taille de
bloc. Ces chiffres tendent à minimiser l'avantage des tailles de blocs plus importantes pour les fichiers
plus imposants, car le Corpus est dominé par des petits fichiers.
Usage Usage Usage Taille du
Option compr. décompr. décompr. -s Corpus
-1 1200k 500k 350k 914704
-2 2000k 900k 600k 877703
-3 2800k 1300k 850k 860338
-4 3600k 1700k 1100k 846899
-5 4400k 2100k 1350k 845160
-6 5200k 2500k 1600k 838626
-7 6100k 2900k 1850k 834096
-8 6800k 3300k 2100k 828642
-9 7600k 3700k 2350k 828642
RÉCUPÉRATION DE DONNÉES DE FICHIERS ENDOMMAGÉS
bzip2 compresse les fichiers en blocs d'une longueur d'habituellement 900 Ko. Chaque bloc est traité
indépendamment des autres. Si un défaut du support physique ou une erreur de transmission provoque
l'endommagement d'un fichier .bz1 multi-blocs, il peut être possible de récupérer des données à partir
des blocs non endommagés du fichier.
La représentation compressée de chaque bloc est délimitée par un motif de 48 bits, ce qui permet de
trouver les limites des blocs avec une probabilité raisonnable. Chaque bloc comporte également son propre
CRC 32 bits, de sorte que les blocs corrompus peuvent être distingués des autres.
bzip2recover est un programme simple dont le but est de rechercher les blocs dans les fichiers .bz2, et
d'écrire chaque bloc détecté dans son propre fichier .bz2. Vous pouvez alors utiliser bzip2 -t pour
tester l'intégrité des fichiers résultants et décompresser ceux qui ne sont pas endommagés.
bzip2recover prend un seul argument, le nom du fichier endommagé, et écrit un certain nombre de fichiers
« rec0001file.bz2 », « rec0002file.bz2 », etc, contenant les blocs extraits. Les noms de fichiers en
sortie sont conçus de sorte que l'utilisation de jokers (wildcards) dans des traitements ultérieurs – par
exemple, « bzip2 -dc rec*file.bz2 > données_récupérées » – liste les fichiers dans le bon ordre.
bzip2recover devrait être utilisé principalement pour traiter les grands fichiers .bz2, puisque ceux-ci
contiennent de nombreux blocs. Il est clairement inutile d'essayer de l'utiliser sur des fichiers
endommagés d'un seul bloc, car un seul bloc endommagé ne peut pas être récupéré. Si vous voulez minimiser
toute perte potentielle de données à cause d'erreurs de transmission, vous devriez envisager d'utiliser
une taille de bloc plus restreinte.
NOTES SUR LES PERFORMANCES
La phase de tri de la compression réunit les chaînes de caractères similaires présentes dans le fichier.
À cause de cela, les fichiers contenant de très longues suites de symboles répétés, comme
« aabaabaabaab ... » (répétés plusieurs centaines de fois) peuvent être compressés plus lentement que
d'habitude. Les versions 0.9.5 et ultérieures se conduisent nettement mieux que les versions précédentes
de ce point de vue. Le rapport entre le temps de compression dans le pire des cas et dans le cas moyen
est de l'ordre de 10 pour 1. Pour les versions antérieures, ce rapport était de 100 pour 1. Vous pouvez
utiliser l'option -vvvv pour voir la progression dans les détails, si vous le souhaitez.
La vitesse de décompression n'est pas affectée par ces phénomènes.
bzip2 alloue d'habitude plusieurs Mo de mémoire pour ses besoins, et ensuite charge le tout d'une manière
assez aléatoire. Cela signifie que les performances, à la fois pour la compression et la décompression,
sont largement déterminées par la vitesse à laquelle votre machine peut traiter les défauts de cache. À
cause de cela, de petites modifications du code pour réduire le taux d'échec en cache ont donné des
améliorations de performances disproportionnées. bzip2 aura sans doute de meilleur performances sur des
machines avec de très grands caches.
AVERTISSEMENTS
Les messages d'erreurs d'E/S ne sont pas d'une grande utilité. bzip2 essaie vraiment de détecter les
erreurs d'E/S et de s'arrêter proprement, mais les détails du problème rencontré peuvent parfois induire
en erreur.
Cette page de manuel concerne la version 1.0.8 de bzip2. Les données compressées créées par cette version
sont entièrement compatibles de façon descendante et ascendante avec les versions antérieures 0.1pl2,
0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 et ultérieures, à l'exception que les versions 0.9.0 et ultérieures
peuvent correctement décompresser de multiples fichiers compressés et concaténés. La version 0.1pl2 ne
sait pas le faire; elle s'arrêtera après la décompression du premier fichier du flux.
Les versions bzip2recover antérieures à 1.0.2 utilisait des entiers de 32 bits pour représenter les
positions des bits dans les fichiers compressés ; de ce fait, elles ne pouvaient traiter de fichiers
compressés de plus de 512 Mo de long. Les versions 1.0.2 et ultérieures utilisent des entiers de 64 bits
sur certaines plateformes qui les prennent en charge (cibles gérées par GNU et Windows). Pour savoir si
bzip2recover a été construit avec ou sans cette limitation, exécutez-le sans argument. Dans tous les cas,
vous pouvez reconstruire une version non limitée si vous pouvez le recompiler avec MaybeUInt64 défini
comme un entier 64 bits non signé.
AUTEUR
Julian Seward, jseward@acm.org.
https://sourceware.org/bzip2/
Les idées intégrées à bzip2 sont dues (entre autres) aux personnes suivantes : Michael Burrows et David
Wheeler (pour la transformation de tri de blocs), David Wheeler (à nouveau, pour le codeur Huffman),
Peter Fenwick (pour le modèle de codage structuré du bzip original et pour de nombreux raffinements), et
Alistair Moffat, Radford Neal et Ian Witten (pour le codeur arithmétique du bzip original). Je suis très
reconnaissant à ces personnes pour leur aide, leur soutien et leurs conseils. Voyez le manuel dans la
distribution source pour obtenir des liens vers les sources de documentation. Christian von Roques
m'encouragea à chercher des algorithmes de tri plus rapides, pour accélérer la compression. Bela Lubkin
m'encouragea à améliorer la performance de la compression dans le pire des cas. Beaucoup de personnes
m'ont envoyé des correctifs, aidé pour des problèmes de portabilité, prêté des machines, donné des
conseils et ont été généralement utiles.
TRADUCTION
La traduction française de cette page de manuel a été créée par Frédéric Delanoy <delanoy_f@yahoo.com> et
Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License
version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.
bzip2(1)