Estimativa de arquivos descomprimidos errada?

9

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

Eu usei split para dividi-lo em 4 partes e, em seguida, cat para juntá-las 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
    
por pkaramol 28.09.2018 / 11:23

1 resposta

20

Isso é causado pelo tamanho do campo usado para armazenar o tamanho descompactado em arquivos compactados com zip: são apenas 32 bits, portanto, gzip pode armazenar apenas tamanhos de arquivos de até 4 GiB. Qualquer coisa maior é compactada e descompactada corretamente, mas gzip -l fornece um tamanho não compactado incorreto.

Portanto, dividir o tarball e reconstruí-lo não causou isso e não deve ter afetado o arquivo. Se você quiser ter certeza, pode verificá-lo com gzip -tv .

Veja A maneira mais rápida de trabalhar com o tamanho não compactado do arquivo GZIPPED grande para obter mais detalhes, e the gzip manual :

The gzip format represents the input size modulo 2³², so the uncompressed size and compression ratio are listed incorrectly for uncompressed files 4 GiB and larger.

    
por 28.09.2018 / 11:28