Как архивировать все папки в каталоге в собственные tar.bz2 файлы

for i in */; do echo tar -cjf "${i%/}.tar.bz2" "$i"; done


Эта команда используется для архивации всех папок в текущем каталоге в собственные файлы tar.bz2.

Цикл «for» выполняет команду внутри его блока для каждого элемента списка, в данном случае для каждой папки (представленной символом «*») в текущем каталоге.

Команда «echo» используется для отображения команды архивации.

Команда «tar -cjf» используется для создания архива tar.bz2. Опция «-c» указывает на создание нового архива, опция «-j» задает формат архива как tar.bz2, а опция «-f» указывает имя файла архива.

«${i%/}.tar.bz2» — это имя файла архива, которое получается путем удаления последнего символа («/») из имени каждой папки и добавления расширения «.tar.bz2».

«$i» — это имя текущей папки, которая передается в качестве аргумента для архивирования.

Альтернативным способом может быть использование утилиты «find» вместо цикла «for» для нахождения всех папок в каталоге. Например, команда «find . -type d -exec tar -cjf {}.tar.bz2 {} \;» будет искать папки в текущем каталоге и создавать для них отдельные архивы tar.bz2.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *