Existe-t-il un moyen de déterminer la taille décompressée d'un fichier .bz2?


34

Existe-t-il un moyen d'imprimer la taille décompressée d'un fichier .bz2 sans décompresser réellement le tout?


Il n'y a donc pas de métadonnées sur le fichier d'origine dans la sortie bzip? > :(
endolith

pas que je l'ai vu référence. : /
quack quixote

Réponses:


36

Comme indiqué par d'autres, bzip2 ne fournit pas beaucoup d'informations. Mais cette technique fonctionne - vous devrez décompresser le fichier, mais vous n'aurez pas à écrire les données décompressées sur le disque, ce qui peut être une solution "assez bonne" pour vous:

$ ls -l foo.bz2
-rw-r--r-- 1 ~quack ~quack 2364418 Jul  4 11:15 foo.bz2

$ bzcat foo.bz2 | wc -c         # bzcat decompresses to stdout, wc -c counts bytes
2928640                         # number of bytes of decompressed data

Vous pouvez diriger cette sortie vers quelque chose d'autre pour vous donner une forme lisible par l'homme:

$ ls -lh foo.bz2
-rw-r--r-- 1 quack quack 2.3M Jul  4 11:15 foo.bz2

$ bzcat foo.bz2 | wc -c | perl -lne 'printf("%.2fM\n", $_/1024/1024)'
2.79M

9
Eh bien, cela n'a pris que cinq minutes de CPU à 100% pour calculer.
endolith

2
seulement? ET cela remplirait un disque? J'ai une archive tar compressée d'une ancienne installation linux qui ne fait que 407meg mais a pris 30 à 45 minutes à mon pauvre ancien serveur pour l'extraire. cela comprenait l'écriture sur le disque, mais je vais devoir exécuter ce script pour le chronométrer. reviens vers toi dans une demi-heure ... :)
quack quixote

J'ai choisi le plus petit fichier pour le premier test, bien sûr. 140 Mo compressés -> 3 Go non compressés. Les fichiers plus volumineux sont compressés à 5 Go ...
endolith

heh .. laissez-moi savoir quelle taille les 5 Go se révèlent être ... et combien de temps il faut pour le découvrir via ce XD
Quack Quack

-3

Pour lire le fichier texte de l'extension .bz sans décompresser.

bzcat dbtax_ext_en.ttl.bz2 |zless

1
bzcat et zless ne fonctionnent pas ensemble comme ça. Utilisez "bzcat file.bz2 | less" ou "bzless file.bz2", ou si vous avez un fichier compressé, "zcat file.gz | less" ou "zless file.gz". En fait, la page de manuel de zless note que "Zless ne fonctionne pas avec les données compressées qui y sont acheminées via une entrée standard; il nécessite que les fichiers d'entrée soient spécifiés comme arguments."
Nick Russo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.