Menurut RFC 1952, gzip
header file menyertakan waktu modifikasi file asli (kolom MTIME
). Anda dapat menampilkan header dalam teks biasa dengan gzip -lv renew.log.gz
:
method crc date time compressed uncompressed ratio uncompressed_name
defla 64263ac7 Jun 21 17:59 314 597 52.1% renew.log
Jadi, jika Anda benar-benar ingin membandingkan file gzip, kompres dengan -n
untuk tidak menyimpan nama file asli dan stempel waktu ,
gzip -n renew.log s3/renew.log
dan md5sum mereka harus identik.
Kalau tidak, Anda bisa menggunakan
md5sum <(zcat renew.log.gz) <(zcat s3/renew.log.gz)
untuk menghitung md5sum dari file yang didekompresi.
Namun, waktu dan tanggal yang ditampilkan tidak diambil dari header, tetapi mewakili nilai saat ini; ini juga berlaku untuk nama file:
$ gzip renew.log
$ mv renew.log.gz foo.gz
$ gzip -lv foo.gz -------- uncompressed name is taken from current name ---v
method crc date time compressed uncompressed ratio uncompressed_name
defla 6c721644 Jul 11 22:34 580 1586 65.7% foo
$ hexdump -C foo.gz | head -n 2
00000000 1f 8b 08 08 f0 16 df 51 00 03 72 65 6e 65 77 2e |.......Q..renew.|
00000010 6c 6f 67 00 8d 93 dd 6e 9b 30 18 86 8f 89 94 7b |log....n.0.....{|
^^^-------^^^^^
original filename is stored in the header
Mengapa Anda mengharapkan versi terkompresi dari file yang sama menjadi sama? Program kompres (gzip) dapat menyertakan beberapa stempel waktu di header, atau dapat menggunakan beberapa algoritme acak.
Dan persis! Header gzip berisi stempel waktu. Jika Anda ingin file terkompresi Anda sama, file Anda harus memiliki stempel waktu yang sama!
Jadi, saat Anda menyalin file, selalu lakukan sebagai cp -p file1 file1
, bukan hanya cp file1 file2
- itu sebenarnya kebiasaan buruk!
Cukup gunakan gzip dengan bendera '-n':
[email protected]:~$ gzip -n Yippie-Ki-Yay.mp3 bla/Yippie-Ki-Yay.mp3
[email protected]:~$ sha1sum Yippie-Ki-Yay.mp3.gz bla/Yippie-Ki-Yay.mp3.gz
b44b21c5f414935f1ced1187bfafd989704474a5 Yippie-Ki-Yay.mp3.gz
b44b21c5f414935f1ced1187bfafd989704474a5 bla/Yippie-Ki-Yay.mp3.gz
Sumber:https://unix.stackexchange.com/questions/31008/why-does-the-gzip-version-of-files-produce-a-different-md5-checksum