web-dev-qa-db-fra.com

Pourquoi la version GZIP de fichiers produit-elle une différence de somme de contrôle MD5 différente?

J'ai quatre fichiers que j'ai créé à l'aide d'un svndump

test.svn 
test2.svn 
test.svn.gz  
test2.svn.gz

maintenant quand je cours ça

md5sum test2.svn test.svn test.svn.gz test2.svn.gz

Voici la sortie

89fc1d097345b0255825286d9b4d64c3  test2.svn
89fc1d097345b0255825286d9b4d64c3  test.svn
8284ebb8b4f860fbb3e03e63168b9c9e  test.svn.gz
ab9411efcb74a466ea8e6faea5c0af9d  test2.svn.gz

Donc, je ne peux pas comprendre pourquoi gzip consacre des fichiers différemment, est-ce que cela met un horodatage quelque part avant de comprimer? J'ai eu un problème similaire avec mysqldump comme il utilisait le champ Date en haut

29
whoami

gzip stocke certaines des métadonnées du fichier d'origine dans l'en-tête d'enregistrement, y compris l'heure de modification de fichier et le nom de fichier, si disponible. Voir Spécification du format de fichier GZIP .

Il est donc prévu que vos deux fichiers gzip ne sont pas identiques. Vous pouvez contourner cela en passant gzip le -n Drapeau, qui l'arrête d'inclure le nom de fichier et l'horodatage d'origine dans l'en-tête.

33
Mat

Chaque fichier .gz a une en-tête avec un nom de fichier ... Essayez head test.svn.gz et head test2.svn.gz

4
Jan Marek