ときどき、破損しているように見える 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 の man ページをざっと読んで、上記のエラーをトラップするようにそのスニペットをコーディングしました
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 で生成されます。Red Hat を使用しています。