フォルダを再帰的に圧縮し、特定のディレクトリを除外したい(temp/.hidden
下の例を参照)。以下の例のように、zipファイルに最上位フォルダがあることを望むので、temp
作業ディレクトリはtemp
。
mkdir -p temp/subdir
touch temp/subdir/keepthisfile.txt
touch temp/excludethisfile.txt
mkdir temp/.hidden
touch temp/.hidden/exclude.txt
cd temp/
私が望むことを達成するために必要なコードは
zip -r temp.zip ../temp/ -x ../temp/excludethisfile.txt ../temp/.hidden/* ../temp/.hidden/
またはより簡潔に(Web上の他の場所から取得した文法)
zip -r temp.zip ../temp/ -x ../temp/excludethisfile.txt ../temp/*.hidden*
../temp/*.hidden*
これがうまくいく理由はわかりますが、以下のコードがなぜ同じことをすることができないのかわかりません../temp/.hidden*
。
zip -r temp.zip ../temp/ -x ../temp/excludethisfile.txt ../temp/.hidden*
ベストアンサー1
../temp/.hidden*
Zipを実行する前にシェルが展開されます。../temp/.hidden
パターンが一致しなくなりました../temp/.hidden/exclude.txt
。 Zipのマニュアルページで推奨されているようにモードを参照する必要があります。
zip -r temp.zip ../temp/ -x ../temp/excludethisfile.txt '../temp/.hidden*'