合并分割文件与原始压缩文件

合并分割文件与原始压缩文件

在Ubuntu 22.04上,我发现这两种方法会得到不同的archive_tgz sha256

tar czf /a/archive_tgz . 

tar czf /dev/stdout . | split -d -b 200M - /a/archive. && cat /a/archive.* > /a/archive_tgz

这是正常的还是与文件的块大小有关?有什么不同?

答案1

区别在于修改时间的.变化它包含在 tar 文件中tar czf archive.tgz .更新.)。

tar czf /dev/stdout . | sha256sum

tar czf archive.tgz .
sha256sum archive.tgz

已经给出了不同的哈希值(没有split)。它还警告tar: .: file changed as we read it

写入不同的目录,因此.的修改时间不变,给出相同的哈希值。

tar czf ../archive.tgz .
sha256sum ../archive.tgz

您还可以split通过比较哈希值来验证这不是问题:

tar czf single-archive.tgz .

split -d -b 200M - single-archive.tgz archive. && cat archive.* >archive-combined.tgz

md5sum single-archive.tgz
md5sum archive-combined.tgz

相关内容