【发布时间】:2019-03-11 03:03:31
【问题描述】:
使用 GNU tar 1.30 在 SUSE Linux Enterprise Server 12 SP3 系统上打包文件夹总是会给出不同的 md5 校验和,尽管文件内容不会改变。
我运行 tar 来打包包含一个简单文本文件的文件夹:
tar cf package.tar folder
尽管如此,虽然内容完全相同,但生成的 tar 始终具有不同的 md5(或 sha1)校验和:
$> rm -rf package.tar && tar cf package.tar folder && md5sum package.tar
e6383218596fffe118758b46e0edad1d package.tar
$> rm -rf package.tar && tar cf package.tar folder && md5sum package.tar
1c5aa972e5bfa2ec78e63a9b3116e027 package.tar
因为 linux 文件系统似乎以随机顺序将文件传送到 tar,所以我尝试使用 --sort 选项。但是生成的命令并没有改变我的校验和问题。 tar 的 --mtime 选项在这里也没有帮助,因为创建日期完全相同。
感谢您对此提供的任何帮助。
【问题讨论】:
-
...文件的最后访问时间?也许?
-
可以更改权限吗?查看this 以了解 TAR 标头包含的内容。
-
这两个文件的文件大小是否相同?
-
你能解压这两个不同的档案并比较文件夹内容吗?
-
@DaBler 文件大小和文件夹内容对于文件的两个版本完全相同。
标签: linux md5 tar checksum opensuse