正如本文https://medium.com/@mpreziuso/is-gzip-deterministic-26c81bfd0a49 中所解释的,两个 .tar.gz 文件的 md5 是完全相同的一组文件的压缩可以不同。例如,这是因为它在压缩文件的标题中包含时间戳。
在文章中提出了 3 个解决方案,我希望使用第一个解决方案:
我们可以在 gzip 中使用 -n 标志,这将使 gzip 省略文件头中的时间戳和文件名;
这个解决方案效果很好:
tar -c ./bin |gzip -n >one.tar.gz
tar -c ./bin |gzip -n >two.tar.gz
md5sum one.tgz two.tgz
Run Code Online (Sandbox Code Playgroud)
尽管如此,我不知道在 python 中做这件事的好方法是什么。有没有办法用 tarfile(https://docs.python.org/2/library/tarfile.html)来做到这一点?