web-dev-qa-db-ja.com

解凍時に__MACOSXディレクトリの抽出を抑制します

Mac OS Xシステムで作成されたZipアーカイブには、通常、___MACOSX_ディレクトリが含まれています。これは、他のほとんどすべてのOSで 役に立たない、煩わしい、不要な です。

Zipアーカイブを解凍するには、 Info-Zip を使用します。これは、ほとんどのLinuxディストリビューションのデフォルトの解凍ツールだと思います。 Info-Zipのunzipに、存在する可能性のある___MACOSX_ディレクトリの抽出を常に自動的に抑制する最良の方法は何ですか?

unzipのマニュアルページによると、_-x_オプションを使用してディレクトリを処理から除外できます。実際、unzipコマンドラインの最後に_-x __MACOSX/*_を追加すると、トリック。しかし、私はこれをいつもタイプする必要はありません。マニュアルページには、コマンドラインオプションはUNZIP環境変数から読み取ることができるとも記載されていますが、これはアーカイブ名の前にあるオプションに対してのみ機能するようです(一方、_-x_はその後に来る必要があります):

_$ export UNZIP="-x __MACOSX/*"
$ unzip foo.Zip
unzip:  cannot find or open __MACOSX, __MACOSX.Zip or __MACOSX.Zip.
_

コマンドラインの最後に_-x __MACOSX/*_を自動的に追加するシェルスクリプトでunzipをラップするよりも良い解決策はありますか?

5
Psychonaut

シェル関数を使用します。

myunzip() {
    unzip "$@" -x '__MACOSX/*'
}

myunzip foo.Zip
8
Barmar