【发布时间】:2016-07-27 15:17:14
【问题描述】:
我可以跑:
echo "asdf" > testfile
tar czf a.tar.gz testfile
tar czf b.tar.gz testfile
md5sum *.tar.gz
事实证明a.tar.gz 和b.tar.gz 具有不同的 md5 哈希值。确实它们是不同的,diff -u a.tar.gz b.tar.gz 证实了这一点。
我还需要向tar 传递哪些额外的标志,以便它的输出随着时间的推移与相同的输入保持一致?
【问题讨论】:
-
gzip头包含原文件的修改时间。当输入来自流而不是压缩文件时,它使用当前时间。
-
@Barmar:谢谢。你知道如何避免这种情况发生吗?
-
我想不出什么好办法。我将发布一个答案,您制作一个未压缩的 tarball,使用
-p选项复制它以保留mtime,然后压缩它们中的每一个。但问题是gzip也把输入的文件名放到了文件里,文件名会不一样。 -
为什么不比较一下未压缩文件的校验和?
-
zcat a.tar.gz | md5sum和zcat b.tar.gz | md5sum
标签: linux hash compression md5 tar