
ディレクトリを圧縮したいのですが、いくつかのサブディレクトリは除外したいと思います。次のような構造があるとします。
directory
subdirectory 1
subdirectory 2
project 1
html
directory 1
vendor
node_modules
... (other directories)
project 2
html
directory 2
vendor
node_modules
... (other directories)
メインディレクトリ全体を ZIP 圧縮したいのですが、次のようなパスを除外したいと思います。
subdirectory2/*/html/vendor/**
subdirectory2/*/html/node_modules/**
どこ:
*
- 1レベルのディレクトリです**
- ファイルとサブディレクトリを含むディレクトリ
問題は、これらproject 1
とがproject 2
非常に動的であり、複数存在することです。また、vendor
ディレクトリ (および理論上はnode_modules
) は、たとえば などの他の場所に配置できることにも注意してください。そのため、サブディレクトリだけでなく、プロジェクトの特定の html ディレクトリに正確に配置された特定のサブディレクトリのみproject 1/html/public/vendor
を除外したいと思います。vendor
vendor
コマンドだけを使用してこのような複雑なものを作成することは可能ですかzip
、それともこのために何らかの bash スクリプトを作成する必要がありますか?
何か違いがあるなら、私は MacOS を使用しています。
これまでに達成したことは次のとおりです。
cd directory && zip test-zip.zip * -r -T -x */*/html/vendor/** */*/html/node_modules/**
ほぼ動作するようですが、空のベンダーおよびノード モジュール ディレクトリが作成されます (ただし、その内容は含まれません)
答え1
解決策は次のようです:
cd directory &&
zip test-zip.zip * -r -T -x "*/*/html/vendor/" "*/*/html/node_modules/" "*/*/html/vendor/**" "*/*/html/node_modules/**"
したがって、このディレクトリとそれらのディレクトリ内のすべてを除外し、すべてを引用符で囲んで有効な方法で展開します