Как выполнить массовое сжатие различных подпапок?

Как выполнить массовое сжатие различных подпапок?

У меня есть папка all_folders, содержащая 5 папок:

./all_folders
./all_folders/folder1
./all_folders/folder2
./all_folders/folder3
./all_folders/folder4
./all_folders/folder5

Могу ли я сжать все эти папки одной командой сразу? Я хочу быть в all_foldersкаталоге, а затем выполнить команду, чтобы сжать отдельные папки в этом каталоге.

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

когда я делаю

ls 

в all_folders, то у меня должно быть 10 каталогов. 5 несжатых и 5 сжатых.

решение1

cdв all_folders, затем запустить

for i in folder1 folder2 folder3 folder4 folder5; do tar czf $i.tar.gz $i; done

решение2

Немного неясно, чего вы пытаетесь добиться. Я исхожу из варианта использования, где здесь должны сжиматься только подкаталоги.

Сначала перейдите в каталог, содержащий коллекцию каталогов, а затем:

find -maxdepth 1 -type d | {
    while read dir; do 
        if [ ! "x${dir#*/}" = "x." ]; then
            tar cJf ${dir#*/}.tar.xz ${dir#*/};
        fi;
    done
}

Это хорошо работает с zsh. Чтобы проверить что-то, поместите echoперед tar, чтобы увидеть, проверяется ли команда и т. д.

Однако создание коллекции архивов, как это, обычно нежелательно. Обычно вы хотите либо сжать всю коллекцию, либо использовать прозрачное сжатие диска, на котором находятся эти файлы, либо использовать транспортное сжатие ( X-DEFLATEнапример, с HTTP).

Пожалуйста, имейте в виду, что в итоге вы получите не «сжатый каталог», а «сжатый архив», эти вещи не являются взаимозаменяемыми, поскольку архивы сами по себе являются файлами, а каталоги — всего лишьинодыдатаграммы.

решение3

tar -zcvf archive.tar.gz directory/ 

Это сообщит tar создать архив из файлов в каталоге (tar по умолчанию рекурсивен), сжать его с помощью алгоритма z (gzip), сохранить вывод как af (файл) с именем archive.tar.gz и v (подробно) вывести список всех файлов, которые он добавляет в архив.

Чтобы распаковать архив в текущий каталог, используйте

tar -zxvf archive.tar.gz 

введите описание изображения здесь

Связанный контент