Selon la RFC 1952, le gzip
l'en-tête du fichier inclut l'heure de modification du fichier d'origine (champ MTIME
). Vous pouvez afficher l'en-tête en texte brut avec 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
Donc, si vous voulez vraiment comparer les fichiers gzip, compressez-les avec le -n
option, pour ne pas enregistrer le nom du fichier d'origine et l'horodatage ,
gzip -n renew.log s3/renew.log
et leur md5sum doivent être identiques.
Sinon, vous pourriez utiliser
md5sum <(zcat renew.log.gz) <(zcat s3/renew.log.gz)
pour calculer le md5sum des fichiers décompressés.
Cependant, l'heure et la date affichées ne sont pas tirées de l'en-tête, mais représentent les valeurs actuelles ; c'est aussi le cas pour le nom du fichier :
$ 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
Pourquoi vous attendez-vous à ce que la version compressée du même fichier soit la même ? Le programme de compression (gzip) peut inclure un horodatage dans l'en-tête ou utiliser des algorithmes aléatoires.
Et justement ! L'en-tête gzip contient l'horodatage. Si vous voulez que vos fichiers compressés soient identiques, votre fichier doit avoir le même horodatage !
Ainsi, lorsque vous copiez un fichier, faites-le toujours en tant que cp -p file1 file1
, pas seulement cp file1 file2
- c'est en fait une mauvaise habitude !
Utilisez simplement gzip avec le drapeau '-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
Source :https://unix.stackexchange.com/questions/31008/why-does-the-gzip-version-of-files-produce-a-different-md5-checksum