Depois que um arquivo é compactado, é possível consultá-lo rapidamente para dizer qual é o tamanho do arquivo descompactado (sem descompactá-lo), especialmente nos casos em que o arquivo descompactado tem mais de 4 GB.
De acordo com a RFC https://tools.ietf.org/html/rfc1952#page-5, você pode consultar os últimos 4 bytes do arquivo, mas se o arquivo não compactado for> 4 GB, o valor representa apenas ouncompressed value modulo 2^32
Esse valor também pode ser recuperado executando gunzip -l foo.gz, no entanto, a coluna "descompactada" apenas contém uncompressed value modulo 2^32novamente, presumivelmente enquanto lê o rodapé, conforme descrito acima.
Eu estava me perguntando se existe uma maneira de obter o tamanho do arquivo descompactado sem precisar descompactá-lo primeiro, isso seria especialmente útil no caso em que os arquivos compactados com gzip contêm 50 GB + de dados e levaria um tempo para descomprimir usando métodos como gzcat foo.gz | wc -c
EDIT: A limitação de 4 GB é reconhecida abertamente na manpágina do gziputilitário incluído no OSX ( Apple gzip 242)
BUGS
According to RFC 1952, the recorded file size is stored in a 32-bit
integer, therefore, it can not represent files larger than 4GB. This
limitation also applies to -l option of gzip utility.
gzipsaiu em 1992. Eu ficaria surpreso se houvesse muitos jovens de 23 anos vagando por aqui. Tenho certeza de que existem alguns, mas pelo que posso dizer, a idade média é de cerca de 30 a 35 anos.
xzqual não há essa limitação. O GNU está mudando para xz.
xz que 'resolveria' esse problema.
gzipdeve ser mais antigo que muitos usuários nesta comunidade!