Linux

將文件夾內的所有子文件夾壓縮為單個 zip 文件

  • May 1, 2018

我在一個大文件夾下有大約 200 個文件夾Parent,比如child1-100

-Parent

—-child1/contents

—-child2/contents

如何更改命名child 1-100為每個 zip 文件夾的所有文件夾,例如child1.zip, child2.zip?我嘗試執行此命令for i in */; do zip -r "${i%/}.zip" "$i"; done ,但它給了我child1.zip提取後給了/child1/child1/contents. 我只希望 zip 文件在解壓後child1.zip提供/child1/contents文件夾。

如果您希望 zip 文件包含 only contents, not child1/contents,請執行以下操作:

for dir in */; do
   ( cd "$dir" && zip -r ../"${dir%/}".zip . )
done
for dir in child*; do
   #recursive zip to include folder contents
   zip -r "${dir}.zip" "$dir"
done

引用自:https://unix.stackexchange.com/questions/441011