tar 返回错误但仍然解压文件,即使使用“tar --no-ignore-command-error -xvzf file.tar.gz”

tar 返回错误但仍然解压文件,即使使用“tar --no-ignore-command-error -xvzf file.tar.gz”

我有一个名为 file.tar.gz 的损坏文件,我希望提取它失败。我使用了tar --no-ignore-command-error -xvzf file.tar.gz,但它仍然提取文件,并忽略错误:

[root@SmartSwitch zconf]# tar --no-ignore-command-error -xvzf a.tar.gz
gzip: crc error
gzip: error inflating
DBversion
License
textual_db.txt
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

答案1

当您提取压缩档案时,GNUtar会运行gzip -d来解压缩数据。如果存档以gzip无法正确解压缩的方式损坏,您将收到gzip与问题中报告的错误类似的错误。

tar将读取成功解压缩的数据gzip,并在处理该数据后退出(如果未压缩存档的结尾意外发生,则会出现错误,如您所示)。

--no-ignore-command-error选项(默认设置)主要与该--to-command=utility选项一起使用,并且根据手册,特别是如果您将其--ignore-command-error作为环境变量的一部分TAR_OPTIONS

目前尚不清楚是否--no-ignore-command-error会对--ignore-command-error子进程产生任何影响不是开始通过--to-command=utility.

相关内容