为什么文件的gzip版本会产生不同的md5校验和


28

我有四个文件是使用 svndump

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

现在当我运行这个

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

这是输出

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

因此我无法理解为什么gzip压缩文件的方式有所不同,是否在压缩之前将时间戳记放置在某个地方?我有一个类似的问题,mysqldump因为它使用顶部的日期字段


该死的,我只是想通了,但是我让一些人提出来。你们当中的答案是:D
whoami '02

Answers:


32

gzip将原始文件的一些元数据存储在记录头中,包括文件修改时间和文件名(如果有)。请参阅GZIP文件格式规范

因此,期望您的两个gzip文件不相同。您可以通过传递标志来解决此问题,gzip-n标志可以阻止标志在标头中包含原始文件名和时间戳。


4

每个.GZ文件与文件的名称的头...尝试head test.svn.gzhead test2.svn.gz


这会输出大量的垃圾。我不认为head在test.svn.gz上能正常工作
whoami

首先,您可以看到文件名...
Jan Marek'2

1
> head test2.svn.gz。。。F @ u。。。–
whoami

11
head test2.svn.gz|hexdump -C不会弄乱你的终端

哦,好@Mat喜欢学习新命令
whoami
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.