Il s'agit de la commande bzip2recover qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
bzip2, bunzip2 - un compresseur de fichiers de tri par blocs, v1.0.6
bzcat - décompresse les fichiers sur stdout
bzip2recover - récupère les données des fichiers bzip2 endommagés
SYNOPSIS
bzip2 [ -cdfkqstvzVL123456789 ] [ noms de fichiers ]
bzip2 [ -h|--aide ]
bunzip2 [ -fkvsVL ] [ noms de fichiers ]
bunzip2 [ -h|--aide ]
bzcat [ -s ] [ noms de fichiers ]
bzcat [ -h|--aide ]
bzip2récupérer nom de fichier
DESCRIPTION
bzip2 compresse les fichiers à l'aide de l'algorithme de compression de texte de tri de blocs Burrows-Wheeler,
et le codage de Huffman. La compression est généralement bien meilleure que celle obtenue par
compresseurs à base de LZ77/LZ78 plus conventionnels, et se rapproche des performances du PPM
famille de compresseurs statistiques.
Les options de la ligne de commande sont volontairement très similaires à celles de GNU gzip, mais ils sont
pas identique.
bzip2 attend une liste de noms de fichiers pour accompagner les indicateurs de ligne de commande. Chaque fichier est
remplacé par une version compressée de lui-même, avec le nom "original_name.bz2". Chaque
le fichier compressé a la même date de modification, les mêmes autorisations et, si possible, la même propriété
comme l'original correspondant, afin que ces propriétés puissent être correctement restaurées à
temps de décompression. La gestion des noms de fichiers est naïve dans le sens où il n'y a pas de mécanisme
pour préserver les noms de fichiers originaux, les autorisations, les propriétés ou les dates dans les systèmes de fichiers qui
n'ont pas ces concepts ou ont de sérieuses restrictions de longueur de nom de fichier, telles que MS-DOS.
bzip2 et bunzip2 n'écrasera pas par défaut les fichiers existants. Si vous voulez que cela
arriver, spécifiez l'indicateur -f.
Si aucun nom de fichier n'est spécifié, bzip2 compresse de l'entrée standard à la sortie standard.
Dans ce cas, bzip2 refusera d'écrire la sortie compressée sur un terminal, car cela
être totalement incompréhensible et donc inutile.
bunzip2 (ou bzip2 -ré) décompresse tous les fichiers spécifiés. Les fichiers qui n'ont pas été créés par
bzip2 sera détecté et ignoré, et un avertissement sera émis. bzip2 tente de deviner le
nom de fichier du fichier décompressé à partir de celui du fichier compressé comme suit :
nom de fichier.bz2 devient nom de fichier
nom de fichier.bz devient nom de fichier
nom_fichier.tbz2 devient nom_fichier.tar
nom_fichier.tbz devient nom_fichier.tar
anyothername devient anyothername.out
Si le fichier ne se termine pas par l'une des terminaisons reconnues, .bz2, .bz, .tbz2 or .tbz, bzip2
se plaint de ne pas pouvoir deviner le nom du fichier d'origine et utilise le nom d'origine
avec .en dehors ajouté
Comme pour la compression, ne fournir aucun nom de fichier entraîne la décompression de l'entrée standard vers
sortie standard.
bunzip2 décompressera correctement un fichier qui est la concaténation de deux ou plusieurs
fichiers compressés. Le résultat est la concaténation des fichiers non compressés correspondants
des dossiers. Le test d'intégrité (-t) des fichiers compressés concaténés est également pris en charge.
Vous pouvez également compresser ou décompresser des fichiers vers la sortie standard en donnant l'option -c.
Plusieurs fichiers peuvent être compressés et décompressés comme ceci. Les sorties résultantes sont
alimenté séquentiellement à stdout. La compression de plusieurs fichiers de cette manière génère un
flux contenant plusieurs représentations de fichiers compressés. Un tel flux peut être
décompressé correctement uniquement par bzip2 version 0.9.0 ou ultérieure. Les versions antérieures de bzip2
s'arrêtera après avoir décompressé le premier fichier du flux.
bzcat (ou bzip2 -cc) décompresse tous les fichiers spécifiés vers la sortie standard.
bzip2 lira les arguments des variables d'environnement Bzip2 et BZIP, dans cet ordre,
et les traitera avant tout argument lu à partir de la ligne de commande. Cela donne un
moyen 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 volumineux que le
original. Les fichiers de moins d'une centaine d'octets ont tendance à devenir plus volumineux, car le
mécanisme de compression a une surcharge constante de l'ordre de 50 octets. Données aléatoires
(y compris la sortie de la plupart des compresseurs de fichiers) est codé à environ 8.05 bits par octet,
soit une expansion d'environ 0.5%.
En guise d'autocontrôle pour votre protection, bzip2 utilise des CRC 32 bits pour s'assurer que le
version décompressée d'un fichier est identique à l'original. Cela protège contre
corruption des données compressées, et contre les bogues non détectés dans bzip2 (j'espère très
improbable). Les chances que la corruption des données ne soit pas détectée sont microscopiques, environ un
chance sur quatre milliards pour chaque fichier traité. Sachez cependant que le contrôle se produit
lors de la décompression, il ne peut donc que vous dire que quelque chose ne va pas. ça ne peut pas t'aider
récupérer les données d'origine non compressées. Vous pouvez utiliser bzip2récupérer pour essayer de récupérer des données
à partir de fichiers endommagés.
Valeurs de retour : 0 pour une sortie normale, 1 pour des problèmes d'environnement (fichier introuvable, invalide
flags, erreurs d'E/S, &c), 2 pour indiquer un fichier compressé corrompu, 3 pour un
erreur de cohérence (par exemple, un bogue) qui a causé bzip2 paniquer.
OPTIONS
-c --stdout
Compresser ou décompresser à la sortie standard.
-d --décompresser
Forcer la décompression. bzip2, bunzip2 et bzcat sont vraiment le même programme, et le
la décision sur les mesures à prendre est prise en fonction du nom utilisé.
Ce drapeau annule ce mécanisme et force bzip2 décompresser.
-z --compresse
Le complément de -d : force la compression, quel que soit le nom d'invocation.
-t --test
Vérifiez l'intégrité du ou des fichiers spécifiés, mais ne les décompressez pas. C'est réellement
effectue une décompression d'essai et jette le résultat.
-f --Obliger
Forcer l'écrasement des fichiers de sortie. Normalement, bzip2 n'écrasera pas l'existant
fichiers de sortie. force aussi bzip2 rompre les liens durs vers des fichiers, ce qui serait autrement
ne ferait pas.
bzip2 refuse normalement de décompresser les fichiers qui n'ont pas la bonne magie
octets d'en-tête. S'il est forcé (-f), cependant, il transmettra ces fichiers sans modification.
C'est ainsi que GNU gzip se comporte.
-k --garder
Conservez (ne supprimez pas) les fichiers d'entrée pendant la compression ou la décompression.
-s --petit
Réduisez l'utilisation de la mémoire, pour la compression, la décompression et les tests. Les fichiers sont
décompressé et testé à l'aide d'un algorithme modifié qui ne nécessite que 2.5 octets
par octet de bloc. Cela signifie que n'importe quel fichier peut être décompressé dans 2300 Ko de mémoire,
mais à environ la moitié de la vitesse normale.
Lors de la compression, -s sélectionne une taille de bloc de 200 k, ce qui limite l'utilisation de la mémoire à
autour du même chiffre, au détriment de votre taux de compression. Bref, si
votre machine manque de mémoire (8 mégaoctets ou moins), utilisez -s pour tout. Voir
GESTION DE LA MÉMOIRE ci-dessous.
-q --silencieux
Supprimez les messages d'avertissement non essentiels. Messages relatifs aux erreurs d'E/S et
les autres événements critiques ne seront pas supprimés.
-v --verbeux
Mode verbeux -- affiche le taux de compression pour chaque fichier traité. Plus de -v
augmenter le niveau de verbosité, crachant beaucoup d'informations qui sont principalement de
intérêt à des fins diagnostiques.
-h --Aidez-moi
Imprimez un message d'aide et quittez.
-L --Licence -V --version
Affichez la version du logiciel, les termes et conditions de la licence.
-1 (ou --vite) à -9 (ou --meilleur)
Réglez la taille du bloc sur 100 k, 200 k ... 900 k lors de la compression. N'a aucun effet lorsque
décompresser. Voir GESTION DE LA MÉMOIRE ci-dessous. Les alias --fast et --best sont
principalement pour la compatibilité GNU gzip. En particulier, --fast ne fait pas les choses
nettement plus rapide. Et --best sélectionne simplement le comportement par défaut.
-- Traite tous les arguments suivants comme des noms de fichiers, même s'ils commencent par un tiret.
C'est ainsi que vous pouvez gérer des fichiers dont les noms commencent par un tiret, par exemple :
bzip2 -- -monnomfichier.
--répétitive-rapide --repetitive-meilleur
Ces drapeaux sont redondants dans les versions 0.9.5 et supérieures. Ils ont fourni quelques grossiers
contrôle sur le comportement de l'algorithme de tri dans les versions antérieures, qui était
parfois utile. 0.9.5 et au-dessus ont un algorithme amélioré qui rend ces
drapeaux sans importance.
MÉMOIRE et test d'intrusion
bzip2 compresse les gros fichiers en blocs. La taille du bloc affecte à la fois le taux de compression
atteint et la quantité de mémoire nécessaire pour la compression et la décompression. Les drapeaux -1
à -9 spécifiez que la taille du bloc est de 100,000 900,000 octets à XNUMX XNUMX octets (valeur par défaut)
respectivement. Au moment de la décompression, la taille de bloc utilisée pour la compression est lue à partir du
en-tête du fichier compressé, et bunzip2 puis s'alloue juste assez de mémoire pour
décompresser le fichier. Étant donné que les tailles de bloc sont stockées dans des fichiers compressés, il s'ensuit que
les drapeaux -1 à -9 ne sont pas pertinents et donc ignorés pendant la décompression.
Les exigences de compression et de décompression, en octets, peuvent être estimées comme suit :
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 blocs de plus grande taille donnent des rendements marginaux rapidement décroissants. La plupart des compressions
vient des deux ou trois cents premiers k de la taille du bloc, un fait qu'il convient de garder à l'esprit
lors de l'utilisation bzip2 sur de petites machines. Il est également important de comprendre que le
L'exigence de mémoire de décompression est définie au moment de la compression par le choix de la taille du bloc.
Pour les fichiers compressés avec la taille de bloc par défaut de 900 ko, bunzip2 nécessitera environ 3700
kilo-octets à décompresser. Pour prendre en charge la décompression de n'importe quel fichier sur une machine de 4 mégaoctets,
bunzip2 a une option pour décompresser en utilisant environ la moitié de cette quantité de mémoire, environ
2300 ko. La vitesse de décompression est également réduite de moitié, vous ne devez donc utiliser cette option que lorsque
nécessaire. L'indicateur correspondant est -s.
En général, essayez d'utiliser la plus grande taille de bloc que les contraintes de mémoire permettent, car cela
maximise la compression obtenue. La vitesse de compression et de décompression est pratiquement
pas affecté par la taille du bloc.
Un autre point important s'applique aux fichiers qui tiennent dans un seul bloc - cela signifie que la plupart
fichiers que vous rencontreriez en utilisant une grande taille de bloc. La quantité de mémoire réelle touchée est
proportionnel à la taille du fichier, puisque le fichier est plus petit qu'un bloc. Pour
exemple, la compression d'un fichier de 20,000 9 octets avec l'indicateur -XNUMX entraînera le compresseur
allouer environ 7600 k de mémoire, mais n'en toucher que 400 k + 20000 * 8 = 560 koctets.
De même, le décompresseur allouera 3700 k mais ne touchera que 100 k + 20000 * 4 = 180
kilo-octets.
Voici un tableau qui résume l'utilisation maximale de la mémoire pour différentes tailles de blocs. Aussi
enregistré est la taille totale compressée pour 14 fichiers du corpus de compression de texte de Calgary
totalisant 3,141,622 XNUMX XNUMX octets. Cette colonne donne une idée de la façon dont la compression varie avec
taille de bloc. Ces chiffres tendent à sous-estimer l'avantage des plus grandes tailles de blocs pour
fichiers plus volumineux, puisque le Corpus est dominé par des fichiers plus petits.
Compresser Décompresser Décompresser le corpus
Indicateur utilisation utilisation -s utilisation Taille
-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 DONNEES De ENDOMMAGÉ DES DOSSIERS
bzip2 compresse les fichiers en blocs, généralement de 900 kilo-octets. Chaque bloc est traité
indépendamment. Si une erreur de support ou de transmission fait qu'un fichier .bz2 multibloc devient
endommagé, il peut être possible de récupérer les données 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 rend
il est possible de trouver les limites des blocs avec une certitude raisonnable. Chaque bloc a également
comporte son propre CRC 32 bits, de sorte que les blocs endommagés peuvent être distingués des blocs non endommagés.
bzip2récupérer est un programme simple dont le but est de rechercher des blocs dans les fichiers .bz2, et
écrivez chaque bloc dans son propre fichier .bz2. Vous pouvez alors utiliser bzip2 -t pour tester le
l'intégrité des fichiers résultants et décompresser ceux qui ne sont pas endommagés.
bzip2récupérer prend un seul argument, le nom du fichier endommagé, et écrit un certain nombre de
fichiers "rec00001file.bz2", "rec00002file.bz2", etc., contenant les blocs extraits.
Les noms de fichiers de sortie sont conçus de manière à ce que l'utilisation de caractères génériques dans le traitement ultérieur --
par exemple, "bzip2 -dc rec*file.bz2 > recover_data" -- traite les fichiers dans le
bon ordre.
bzip2récupérer devrait être le plus utile pour traiter de gros fichiers .bz2, car ceux-ci contiendront
beaucoup de blocs. Il est manifestement inutile de l'utiliser sur des fichiers monobloc endommagés, car un
le bloc endommagé ne peut pas être récupéré. Si vous souhaitez minimiser toute perte potentielle de données
par le biais d'erreurs de support ou de transmission, vous pouvez envisager de compresser avec un bloc plus petit
Taille.
PERFORMANCE NOTES
La phase de tri de la compression rassemble des chaînes similaires dans le fichier. En raison de
ceci, des fichiers contenant de très longues séries de symboles répétés, comme "aabaabaabaab ..."
(répétée plusieurs centaines de fois) peut se compresser plus lentement que la normale. Versions 0.9.5 et
ci-dessus s'en tirent bien mieux que les versions précédentes à cet égard. Le rapport entre les pires
le temps de compression de cas et de cas moyen est de l'ordre de 10:1. Pour les versions précédentes,
ce chiffre ressemblait plus à 100:1. Vous pouvez utiliser l'option -vvvv pour surveiller la progression dans
grand détail, si vous voulez.
La vitesse de décompression n'est pas affectée par ces phénomènes.
bzip2 alloue généralement plusieurs mégaoctets de mémoire pour fonctionner, puis charge tous
dessus de façon assez aléatoire. Cela signifie que les performances, à la fois pour la compression et
décompression, est en grande partie déterminé par la vitesse à laquelle votre machine peut entretenir le cache
manque. Pour cette raison, de petits changements au code pour réduire le taux d'échec ont été
observé pour donner des améliorations de performances disproportionnellement importantes. j'imagine bzip2 sera
fonctionnent mieux sur les machines avec des caches très volumineux.
MISES EN GARDE
Les messages d'erreur d'E/S ne sont pas aussi utiles qu'ils pourraient l'être. bzip2 essaie de détecter les E/S
erreurs et sortez proprement, mais les détails de la nature du problème semblent parfois plutôt
trompeur.
Cette page de manuel concerne la version 1.0.6 de bzip2. Les données compressées créées par ce
la version est entièrement compatible en amont et en aval avec les versions publiques précédentes,
versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 et supérieures, mais avec les suivantes
exception: 0.9.0 et supérieur peut décompresser correctement plusieurs compressés concaténés
des dossiers. 0.1pl2 ne peut pas le faire ; il s'arrêtera après avoir décompressé juste le premier fichier dans le
ruisseau.
bzip2récupérer les versions antérieures à 1.0.2 utilisaient des entiers de 32 bits pour représenter les positions des bits dans
fichiers compressés, de sorte qu'ils ne pouvaient pas gérer les fichiers compressés de plus de 512 mégaoctets.
Les versions 1.0.2 et supérieures utilisent des ints 64 bits sur certaines plates-formes qui les prennent en charge (GNU
cibles prises en charge et Windows). Pour établir si bzip2recover a été construit ou non avec
une telle limitation, exécutez-le sans arguments. Dans tous les cas, vous pouvez vous construire un
version illimitée si vous pouvez la recompiler avec MaybeUInt64 défini pour être un 64 bits non signé
entier.
Utilisez bzip2recover en ligne en utilisant les services onworks.net