Se você quiser que o arquivo zip contenha apenas contents , não child1/contents , faça o seguinte:
for dir in */; do
( cd "$dir" && zip -r ../"${dir%/}".zip . )
done
Eu tenho cerca de 200 pastas diretamente em uma pasta enorme Parent , como child1-100
- Parent
---- child1/contents
---- child2/contents
Como faço para alterar todas as pastas denominadas child 1-100 em cada pasta zip, como child1.zip, child2.zip ?
Eu tentei fazer este comando for i in */; do zip -r "${i%/}.zip" "$i"; done
mas me deu child1.zip que depois de extraído deu /child1/child1/contents . Eu só quero que o arquivo zip child1.zip dê à pasta /child1/contents após a extração.
for dir in child*; do
#recursive zip to include folder contents
zip -r "${dir}.zip" "$dir"
done
Tags bash zip files linux shell-script