LINUX.ORG.RU

Циклом по папкам через find с указанием глубины или через глобинг баша.

anonymous
()
Ответ на: комментарий от Aeeioyqee

Есть структура: folder/ subfolder1/ file.txt subfolder2/ file.txt subfolder3/ file.txt Нужно, каждую подпапку в папке одной командой заархивировать в отдельный архив, чтобы получилось: folder/ subfolder1.7z subfolder2.7z subfolder3.7z

lejok
() автор топика

Правильно понял что нужно структуру директорий, например:

-foo\
--bar
--ber
--bur

Раскатать в архивы bar.7zip, ber.7zip, bur.7zip?

Видимо надо циклом пройтись по директориям.

frunobulax ★★
()
Ответ на: комментарий от frunobulax

Да именно так, циклами не пользовался ни разу, пойду гляну.

lejok
() автор топика
Ответ на: комментарий от lejok

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

7z a arch.7z /home/file01.foo file02.foo && 7z a arch2.7z /home/file1 и тд.

Это тупость конечно, но зато просто для понимания.

Aeeioyqee
()
Ответ на: комментарий от Aeeioyqee

Спасибо всем, за наводку на решение задачи, если кому итересно, решил данным образом.

FILES=../files
for f in $FILES
> do
> filename=$(basename "$f")
> 7z a -t7z -mx=9 -ms=on ./t
> 7z a -t7z -mx=9 -ms=on ./${filename}.7z $f
> done

lejok
() автор топика
Ответ на: комментарий от Aeeioyqee

Если директорий много замучаешься же.

Решение из гугла, проверяйте в сначала тестовом окружении :D

ls backup | parallel -j5 7z a -mmt=4 "storage/nas/TBL/compressed_backups/{}.7z" {} 
frunobulax ★★
()
Ответ на: комментарий от lejok

Пишешь, никогда не пользовался и сразу в терминале - это жестоко.

В MC, в одной панели выделяешь каталоги, в «user menu» выбираешь команду архивации, каждый каталог сжимается в свой архив на другую панель. Правда, для 7z кажется там нет команды. Но несложно добавить. И свой получившийся скрипт можешь туда добавить, чтобы в следующий раз не искать, не вспоминать.

andytux ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.