1

ときどき、破損しているように見える 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 を使用しています。

4

1 に答える 1