Warum erzeugt die gzip-Version von Dateien eine andere md5-Prüfsumme?

28

Ich habe vier Dateien, die ich mit einem erstellt habe svndump

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

jetzt wenn ich das mache

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

Hier ist die Ausgabe

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

Ich kann also nicht verstehen, warum gzipdas Komprimieren von Dateien anders ist. Setzt es irgendwo vor dem Komprimieren einen Zeitstempel? Ich hatte ein ähnliches Problem, mysqldumpda das Datumsfeld oben verwendet wurde

Wer bin ich
quelle
Verdammt, ich habe es gerade herausgefunden, aber ich habe es jemandem überlassen, die Punkte zu sammeln. Von Ihnen gehen Antwort: D
whoami

Antworten:

32

gzipSpeichert einige der Metadaten der Originaldatei im Datensatzheader, einschließlich der Dateiänderungszeit und des Dateinamens, sofern verfügbar. Siehe Spezifikation des GZIP-Dateiformats .

Es wird also erwartet, dass Ihre beiden gzipDateien nicht identisch sind. Sie können dies umgehen, indem Sie gzipdas -nFlag übergeben, wodurch verhindert wird, dass der ursprüngliche Dateiname und der Zeitstempel im Header enthalten sind.

Matte
quelle
4

Jede .gz-Datei hat einen Header mit dem Dateinamen ... Try head test.svn.gzandhead test2.svn.gz

Jan Marek
quelle
Das gibt eine Menge Müll aus. i Kopf nicht , was würde gut auf test.svn.gz arbeiten
whoami
Am Anfang sehen Sie einen Dateinamen ...
Jan Marek
1
> Kopf test2.svn.gz Fu;? @ H'N`VD Fo
whoami
11
head test2.svn.gz|hexdump -Cwird Ihr Terminal nicht vermasseln
Mat
ohhh nice @Mat liebe es, neue Befehle zu lernen
whoami