Por que o gzip -c fornece resultados diferentes do gzip?

1

Estou escrevendo testes de unidade para algum código e descobri que um simples gzip está causando uma diferença em meus resultados. Após investigação adicional, descobri que gzip fornece um arquivo .gz diferente de gzip -c . Por que isso acontece?

$ echo "foo" > bar
$ gzip bar
$ zcat bar.gz | gzip -c > test.gz
$ cmp bar.gz test.gz 
bar.gz test.gz differ: byte 4, line 1
$ stat bar.gz | grep Size
  Size: 28          Blocks: 0          IO Block: 4194304 regular file
$ stat test.gz | grep Size
  Size: 24          Blocks: 0          IO Block: 4194304 regular file
$ zcat bar.gz > foo1.txt
$ zcat test.gz > foo2.txt
$ cmp foo1.txt foo2.txt 
$ echo $?
0 
    
por drjrm3 21.08.2018 / 23:23

1 resposta

3

gzipar um arquivo fará com que o nome do arquivo original seja armazenado como parte do cabeçalho de saída.

(Por padrão, a hora da modificação é armazenada também, portanto, até mesmo dois arquivos .gz criados de forma idêntica serão diferentes.)

    
por 21.08.2018 / 23:36