Man page - bunzip2(1)

Packages contains this manual

Available languages:

en fr es pl ko cs tr ja uk ru ro zh_TW zh_CN de

Manual

bzip2

NOM
SYNOPSIS
DESCRIPTION
OPTIONS
GESTION DE LA MÉMOIRE
RÉCUPÉRATION DE DONNÉES DE FICHIERS ENDOMMAGÉS
NOTES SUR LES PERFORMANCES
AVERTISSEMENTS
AUTEUR
TRADUCTION

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 .