Estimativa de arquivo não compactado incorreta?


9

Eu tinha um grande arquivo compactado (~ 60G) ( tar.gz).

Costumava splitdividi-lo em 4 partes e depois catjuntá-los novamente.

No entanto, agora, quando estou tentando estimar o tamanho do arquivo descompactado, ele é menor que o original? Como isso é possível?

$ gzip -l myfile.tar.gz 
         compressed        uncompressed  ratio uncompressed_name
        60680003101          3985780736 -1422.4% myfile.tar

É splitrealmente relevante para isso? Você só tem o problema depois de dividir e juntá-los novamente?
Barmar 28/09

Respostas:


20

Isso é causado pelo tamanho do campo usado para armazenar o tamanho descompactado nos arquivos compactados em gzip: são apenas 32 bits, portanto, gzipsó é possível armazenar tamanhos de arquivos com até 4 GiB. Qualquer coisa maior é compactada e descompactada corretamente, mas gzip -lfornece um tamanho descompactado incorreto.

Portanto, dividir o tarball e reconstruí-lo não causou isso e não deveria ter afetado o arquivo - se você quiser ter certeza, pode verificar com ele gzip -tv.

Consulte Maneira mais rápida de calcular o tamanho descompactado de um arquivo GZIPPED grande para obter mais detalhes e o gzipmanual :

O gzipformato representa o tamanho da entrada módulo 2³² , portanto, o tamanho não compactado e a taxa de compactação são listados incorretamente para arquivos não compactados com 4 GiB e maiores.


Então, o conteúdo real ainda pode estar intacto, certo?
Ruslan

@Ruslan sim, o tamanho exibido está errado, mas o conteúdo está correto.
Stephen Kitt

+1 Eu ia adivinhar que era erro UINT32 ou algo assim.
mathreadler
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.