ファイル圧縮時にディレクトリを除外する方法

ファイル圧縮時にディレクトリを除外する方法

ビルドアーカイブを使用するときは、特定のディレクトリを除外したいと思いますzip。私が試したことは次のとおりです。

$ zip home.zip -y -r HOME -x '/AppData' -x '/AppData*' -x '/AppData/*' -x 'AppData' -x 'AppData*' -x 'AppData/*'

生産:

  adding: HOME/ (stored 0%)
  adding: HOME/AppData/ (stored 0%)
  adding: HOME/AppData/a (deflated 39%)
  adding: HOME/AppData/LocalLow/ (stored 0%)
  adding: HOME/AppData/LocalLow/Sun/ (stored 0%)
  adding: HOME/AppData/LocalLow/Sun/Java/ (stored 0%)
  adding: HOME/AppData/LocalLow/Sun/Java/a (deflated 39%)
  adding: HOME/AppData/LocalLow/Sun/Java/Deployment/ (stored 0%)
  adding: HOME/AppData/LocalLow/Sun/Java/Deployment/a (deflated 39%)

私のディレクトリツリーは次のとおりです。

./HOME
./HOME/AppData
./HOME/AppData/a
./HOME/AppData/LocalLow
./HOME/AppData/LocalLow/Sun
./HOME/AppData/LocalLow/Sun/Java
./HOME/AppData/LocalLow/Sun/Java/a
./HOME/AppData/LocalLow/Sun/Java/Deployment
./HOME/AppData/LocalLow/Sun/Java/Deployment/a

だから私の選択を無視しているようです-x

このオプションの正しい構文は何ですか-x

確立されたこの投稿しかし、上記のように、私の問題は解決されませんでした。

Windows 7のCygwin 1.7.35でInfo-ZIP 3.0を使用しています。

答え1

に設定してみてください-x '*AppData/*'

答え2

ただ

-x */AppData/*
# or
--exclude */AppData/*

最初のスラッシュを追加することを忘れないでください。それ以外の場合は、「AppData」で始まるパスだけでなく、「AppData」を含むすべてのパスとも一致するためです。

答え3

zip一致するパスには、ルート以外のユーザーが提供したルートパス要素が含まれているようです。.

私の場合、以下の項目を除外するには次のものがLocalLow必要です。

$ zip home.zip -y -r HOME -x 'HOME/AppData/LocalLow/*'

生産する:

  adding: HOME/ (stored 0%)
  adding: HOME/AppData/ (stored 0%)
  adding: HOME/AppData/a (deflated 39%)

ディレクトリcdに移動してそれをルートディレクトリとして使用する場合、除外パスにルート要素を指定する必要はありません。HOME.

$ cd HOME
$ zip home.zip -y -r . -x 'AppData/LocalLow/*'

  adding: AppData/ (stored 0%)
  adding: AppData/a (deflated 39%)

関連情報