焦油错误:归档中意外的EOF

我tar一个完整的JPEG图像的目录:

tar cvfz myarchive.tar.gz mydirectory 

当我解压档案时:

 tar xvfz myarchive.tar.gz 

我得到一个错误:

 tar: Unexpected EOF in archive 

看着输出,它在一个特定的JPEG图像的中间失败。

我究竟做错了什么?

有趣。 我有几个问题可以指出问题。

1 /您是否在同一个平台上拼版,因为您正在拼图? 他们可能是tar不同版本(例如,GNU和old-unix)? 如果他们不一样,你可以解开同一个盒子吗?

2 /当你简单地使用gunzip myarchive.tar.gz时会发生什么? 那样有用吗? 也许你的文件被损坏/截断。 我假设你会注意到,如果压缩产生的错误,是吗?

基于GNU tar源码,如果find_next_block()提前返回0,通常是由截断的归档引起的,它将只打印该消息。

可能是你在ASCII模式而不是二进制模式下的文件? 如果没有,这可能会有所帮助。

$ gunzip myarchive.tar.gz

然后使用解压缩生成的tar文件

$ tar xvf myarchive.tar

希望这可以帮助。

我有一个类似的问题,由cron作业生成截断的tar文件,并将标准重定向到解决问题的文件。

从与同事的交谈中,cron创建一个管道,并限制可以发送到标准输出的输出量。 我通过从我的tar命令中删除-v来修复我的问题,使得它更加简洁,并将错误输出保留在与我的其他cron作业相同的位置。 如果你需要详细的tar输出,你需要重定向到一个文件。

就我而言,在tar文件上传完成之前,我已经开始解压。