Почему gzip -c дает результаты, отличные от gzip?

338
drjrm3

Я пишу модульные тесты для некоторого кода и обнаружил, что простой gzipвызывает разницу в моих результатах. После дальнейшего расследования я обнаружил, что gzipдает другой .gzфайл, чем gzip -cделает. Почему это?

$ 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  
1
Кстати, нет никакого смысла использовать опцию `-c`, если вы подключаетесь к` gzip`. ** man gzip **: `Если файлы не указаны или имя файла равно« - », стандартный ввод сжимается до стандартного вывода. Alex 5 лет назад 0

1 ответ на вопрос

3
grawity

Распаковка файла приведет к тому, что исходное имя файла будет сохранено как часть выходного заголовка.

(По умолчанию время модификации также сохраняется, поэтому даже два идентично созданных файла .gz будут отличаться.)

Похожие вопросы