如何验证 tar.gz 文件的完整性?

如何验证 tar.gz 文件的完整性?

我有一个 17 GB 的 tar.gz 文件,它是目录的 tar.gz 版本。 tar 操作后我收到以下消息。

tar: Error exit delayed from previous errors

现在,由于下载需要很长时间,我只想在下载之前确保文件是健康的。有没有一种方法可以确保文件的完整性而不需要花费很多时间?

目前我找到的所有检查解决方案都需要很长时间才能完成。

答案1

您不能假设该tar.gz文件是健康的,但恕我直言,它的可能性非常好。

一个非常常见的根本原因是"Error exit delayed from previous errors"文件在处理过程中大小发生变化或之前消失。根据您的档案包含的文件类型,这可能不是问题。无论如何,只要tar正确处理此类事件,创建的档案就应该可用。

下次创建存档时,我建议忘记v(详细)选项或重定向stdout到文件。虽然它对于包含十几个文件左右的小型档案很有用,tar但它会在输出中添加无用的噪音,然后您将在屏幕上看到错误消息(如果有),并且不会在终端模拟器回滚中丢失。

tar czvf large.tar.gz someDirectory >/tmp/large.tar.list

当然,并不能 100% 保证您的tar.gz文件是健康的。知道它的唯一方法是将其提取到某个地方并查看是否没有出现错误。即使是这种情况,仍然有可能由于访问权限问题,或者更奇怪的问题,如文件名/路径名太长或无效、文件系统损坏、传输损坏等,某些文件未保存...

答案2

根据我的经验,tar: Error exit delayed from previous errors通常意味着 tarring 过程中生成的 gzip 出现错误(通常添加的文件在放入 tar 时更改了内容),并且给出了上述错误。

这可能会构成“失败的存档”(该文件可能不同,在您的 tar 中丢失或损坏)。对于大量(变化的)内容,我建议使用rsync复制文件来代替。

相关内容