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

16 linux sysadmin

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

tar cvfz myarchive.tar.gz mydirectory
Run Code Online (Sandbox Code Playgroud)

当我解开档案时:

tar xvfz myarchive.tar.gz
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

tar: Unexpected EOF in archive
Run Code Online (Sandbox Code Playgroud)

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

我究竟做错了什么?

pax*_*blo 10

有趣.我有几个问题可以指出问题所在.

1 /你在同一个平台上进行训练吗?它们可能是不同的版本tar(例如,GNU和old-unix)?如果它们不同,你可以在你用的同一个盒子上解开吗?

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

基于GNU tar源,它只会在find_next_block()过早返回0时打印该消息,这通常是由截断的归档引起的.


Sar*_*dhi 7

可能是你用ascii模式而不是二进制模式来处理文件?如果没有,这可能会有所帮助.

$ gunzip myarchive.tar.gz

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

$ tar xvf myarchive.tar

希望这可以帮助.


Jer*_*ome 6

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

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