Bash: найти и заархивировать все подпапки папки

1852
m1k3y02

Как найти все подпапки папки и архивировать их отдельно?

структура папок

./folder  -subfolder_1  -subfolder_2  -subfolder_3  

ожидаемый результат:

./folder -subfolder_1.zip -subfolder_2.zip -subfolder_3.zip 

Я пробовал следующее:

for i in .; do zip -r $i.zip $i; done; 

в результате получился один ..zip- файл, содержащий все подпапки

2

2 ответа на вопрос

3
zuberuber

Actually solution provided by m1k3y02(for i in *; do zip -r "$i.zip" $i; done) will work only if current directory contains only subdirectories.

Better way for finding and zipping only subdirectories:

for dir in ./* ;do if [[ -d $dir ]];then zip -r $.zip $dir fi done 

or

find . -type d -maxdepth 1 -exec zip -r {}.zip {} \; 
0
m1k3y02

Решение следующим образом ...

for i in *; do zip -r "$i.zip" $i; done; 

Похожие вопросы