我试图解压.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 中制作存档,并且正在使用-v
with 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
解决问题。