Mengapa gzip -c memberikan hasil yang berbeda dari gzip?


1

Saya menulis tes unit untuk beberapa kode dan menemukan itu sederhana gzip menyebabkan perbedaan dalam hasil saya. Setelah diselidiki lebih lanjut, saya menemukannya gzip memberi yang berbeda .gz file dari gzip -c tidak. Kenapa ini?

$ 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 

BTW, tidak ada gunanya digunakan -c opsi jika Anda mengirim ke gzip. man gzip : If no files are specified, or if a file name is "-", the standard input is compressed to the standard output.
Alex

Jawaban:


3

gzipping a mengajukan akan menyebabkan nama file asli disimpan sebagai bagian dari header keluaran.

(Secara default, waktu modifikasi juga disimpan, sehingga bahkan dua file .gz yang dibuat secara identik akan berbeda.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.