Zipar todas as subpastas dentro de uma pasta para um arquivo zip individual

1

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.

    
por stackFan 01.05.2018 / 01:35

2 respostas

1

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
    
por 01.05.2018 / 03:25
0
for dir in child*; do
    #recursive zip to include folder contents
    zip -r "${dir}.zip" "$dir"
done
    
por 01.05.2018 / 01:36