tar:存档中出现意外的 EOF

tar:存档中出现意外的 EOF

我试图解压.tar.gz文件,但遇到了以下错误:

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

tar.gz文件包含一个.tar文件,解压后会产生:

tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

我尝试了–ignore-zeros–ignore-failed-read,尽管它们都不起作用。

即使该文件已损坏,有什么方法可以提取该文件吗?

有问题的文件类型:.tar.gz:来自 UNIX 系统的 Gzip 压缩数据。

答案1

检查两项:

(1) 是文件不完整由于下载错误?重新下载,如果您使用的是 wget,请使用 -c 选项。 (一直发生)。

(2).tar或.tar.gz文件名是否有非法字符。档案名称最好保持简单、简短,由字母和数字组成。 (一直发生)。所以只需重命名该文件即可。最近这个问题让我很着迷,因为我认为将时间/日期戳作为存档名称的一部分会很方便。馊主意!

答案2

你不知道。该文件似乎已被截断。多久了?如果您只有前几个字节,那么就完成了。

答案3

您是否在制作该文件的同一平台上解压 .tar.gz 文件?旧版 Unix 版本的 tar 之间存在一些差异,例如 Solaris 附带的非 GNU 版本的 tar 和 Linux 附带的 GNU tar 等。如果要使用 GNU tar 解压存档,最好使用 GNU tar 创建它。

您的系统如何寻找磁盘空间?当您制作存档时磁盘已满,还是在您尝试解压缩时磁盘已满?

您是否使用 cron 作业创建了存档?如果没有输出重定向,由于 STDOUT 允许的输出大小的限制,cron 可以对存档做一些奇怪的事情。如果您在 cron 中制作存档,并且正在使用-vwith tar,请尝试将 STDOUT 重定向到文件,也将 STDERR 重定向到文件。看看是否有帮助。 tar -cvf archive.tar.gz /path/ 1>archive.stdout.log 2>archive.stderr.log或类似的东西。

答案4

最近刚刚遇到这个问题,解决方案是重命名文件(删除_)。例如,导致问题的文件名错误MAA07-0100-0100-01AAA_show_tech_output.tgz,重命名它有助于MAA07-0100-0100-01AAA.tgz解决问题。

相关内容