tar 用零填充

tar 用零填充

当我对 bz2 压缩文件执行 tar 时,我遇到以下错误,

tar: dump.sql: 文件缩小了 19573448400 字节;用零填充

有人能指出可能导致该问题的原因吗?

谢谢。

答案1

这不是一个错误。这是信息。

我敢打赌你正在压缩/解压缩虚拟机映像或其他稀疏分配的文件。

Bzip2 检测到该文件大部分为零,并对其进行了压缩,以使这些零不存在于压缩文件中。

这是稀疏文件的实际大小和表观大小之间的差异。

答案2

有问题的文件名为dump.sql,因此可能不是 bz2 压缩文件。——无论如何,问题与 bz2 或文件内容类型无关。

该消息意味着,stat()文件上报告的大小与实际可从文件中读取的大小不同。如果在tar工作时更改了文件,则可能会发生这种情况。

这也发生在“虚拟文件”上,例如 Linux 的 /sys 文件系统上的文件。其中许多文件报告的大小为 4096 字节(任意值)。有一次read(),它们只返回几个字节。

答案3

另一个可能的原因是源文件因源磁盘错误而损坏。

关于这些情况的另一条消息是:“无法统计:输入/输出错误”。

相关内容