Secondo RFC 1952, il gzip
l'intestazione del file include l'ora di modifica del file originale (campo MTIME
). Puoi visualizzare l'intestazione in testo semplice con 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
Quindi, se vuoi davvero confrontare i file compressi con gzip, comprimili con -n
opzione, per non salvare il nome del file e il timestamp originali ,
gzip -n renew.log s3/renew.log
e la loro somma md5 dovrebbe essere identica.
Altrimenti potresti usare
md5sum <(zcat renew.log.gz) <(zcat s3/renew.log.gz)
per calcolare la md5sum dei file decompressi.
Tuttavia, l'ora e la data visualizzate non vengono prese dall'intestazione, ma rappresentano i valori correnti; questo vale anche per il nome del 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
Perché ti aspetti che la versione compressa dello stesso file sia la stessa? Il programma di compressione (gzip) può includere alcuni timestamp nell'intestazione o può utilizzare alcuni algoritmi randomizzati.
Ed esattamente! L'intestazione gzip contiene il timestamp. Se vuoi che i tuoi file compressi siano gli stessi, il tuo file deve avere lo stesso timestamp!
Quindi, quando copi un file, fallo sempre come cp -p file1 file1
, non solo cp file1 file2
- in realtà è una cattiva abitudine!
Basta usare gzip con il flag '-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
Fonte:https://unix.stackexchange.com/questions/31008/why-does-the-gzip-version-of-files-produce-a-different-md5-checksum