web-dev-qa-db-fra.com

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

Existe-t-il un moyen d'imprimer la taille décompressée d'un fichier .bz2 sans décompresser réellement la chose entière?

36
endolith

Comme indiqué par d'autres, BZIP2 ne fournit pas beaucoup d'informations. Mais cette technique fonctionne - vous devrez décompresser le fichier, mais vous devrez NE DOIT é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 tuyer cette sortie dans 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
37
quack quixote