我在一个大文件夹下有大约 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
答案1
如果您希望 zip 文件仅包含contents
,而不包含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