Existe uma maneira de determinar o tamanho descompactado de um arquivo .bz2?

34

Existe uma maneira de imprimir o tamanho descompactado de um arquivo .bz2 sem descomprimir a coisa toda?

endólito
fonte
Portanto, não há metadados sobre o arquivo original na saída bzip? > :(
endolith
Não que eu tenha visto referência. : /
quack quixote

Respostas:

36

Como observado por outros, o bzip2 não fornece muita informação. Mas essa técnica funciona - você precisará descompactar o arquivo, mas não precisará gravar os dados descompactados no disco, o que pode ser uma solução "suficientemente boa" para você:

$ 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

Você pode canalizar essa saída para outra coisa para fornecer uma forma legível por humanos:

$ 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
charlatão quixote
fonte
9
Bem, isso levou apenas cinco minutos de 100% da CPU para calcular.
Endolith 11/10/2009
2
só? E encheria um disco? Eu tenho um pacote compactado de uma instalação antiga do Linux que é de apenas 407meg e ainda assim o meu pobre servidor antigo demorou 30 a 45 minutos para extrair. isso incluía gravar no disco, então terei que executar esse script para cronometrar. voltar ao ya em meia hora ... :)
quack quixote
Eu escolhi o menor arquivo para o primeiro teste, é claro. 140 MB compactados -> 3 GB não compactados. Os arquivos maiores são 5 GB comprimido ...
endolith
heh .. deixe-me saber quão grande é o 5GBs vir a ser ... e quanto tempo leva para descobrir isso através deste XD
quack quixote
-3

Para ler o arquivo de texto da extensão .bz sem descompactar.

bzcat dbtax_ext_en.ttl.bz2 |zless
Shashank Motepalli
fonte
1
bzcat e zless não funcionam juntos assim. Use "bzcat file.bz2 | less" ou "bzless file.bz2" ou, se você tiver um arquivo compactado com gzip, "zcat file.gz | less" ou "zless file.gz". De fato, a página de manual do zless observa que "o Zless não funciona com dados compactados que são canalizados para ele por meio de entrada padrão; requer que os arquivos de entrada sejam especificados como argumentos".
21418 Nick Nick