有时,我们会从供应商处收到看似已损坏的 ZIP 文件。尝试列出 ZIP 的内容将触发如下错误:
$>unzip -qql JABL_VER_20120808_165910.zip
unzip: cannot find or open JABL_VER_20120808_165910.zip, JABL_VER_20120808_165910.zip.zip or JABL_VER_20120808_165910.zip.ZIP.
我快速阅读了 unzip 手册页并对该片段进行了编码以捕获上述错误
EXIT=`echo $?`
case $EXIT in
> 0-1) echo "Unzip Complete.";;
> *) echo "Unzip Failed.";;
> esac
$>Unzip Failed.
它似乎工作。但是,在某些情况下,错误是不同的:
$>unzip -qql JABL_VER_20120808_175915.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of JABL_VER_20120808_175915.zip or
JABL_VER_20120808_175915.zip.zip, and cannot find JABL_VER_20120808_175915.zip.ZIP, period.
是否有一种“万无一失”的方法来捕获此类错误?
PS:不确定是否重要,但 ZIP 文件是在 MS Windows 上生成的;我们使用红帽。