フォルダ内のすべてのサブフォルダを別々のzipファイルに圧縮する

フォルダ内のすべてのサブフォルダを別々のzipファイルに圧縮する

大きなフォルダの下に約200のフォルダがありますParentchild1-100

-Parent

----child1/contents

----child2/contents

child 1-100たとえば、各zipフォルダに名前が付けられているすべてのフォルダをどのように変更できますかchild1.zip, child2.zip?このコマンドを実行してみましたが、抽出後に与えられたコマンドがfor i in */; do zip -r "${i%/}.zip" "$i"; done 提供されます。 zipファイルを解凍してフォルダに提供したいです。child1.zip/child1/child1/contentschild1.zip/child1/contents

答え1

contentszipファイルにのみ含めて含めない場合は、child1/contents次のようにします。

for dir in */; do
    ( cd "$dir" && zip -r ../"${dir%/}".zip . )
done

答え2

for dir in child*; do
    #recursive zip to include folder contents
    zip -r "${dir}.zip" "$dir"
done

関連情報