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