我有一个名为 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
.