Как заархивировать только часть каталогов?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Nolan
Сообщения: 23

Как заархивировать только часть каталогов?

Сообщение Nolan »

Приветствую.
Есть структура директорий

Код: Выделить всё

- main
-- 1
-- 2
-- ...
-- 999
, т.е. у main в подкаталогах могут быть названия - только числа от 1 до 999, а внутри них уже данные
, как мне командой tar в архив себе закинуть только подкаталоги скажем с 500 по 999 ?
Спасибо.
Спасибо сказали:
astroncia
Сообщения: 133

Re: Как заархивировать только часть каталогов?

Сообщение astroncia »

Nolan писал(а):
21.01.2022 09:30
, как мне командой tar в архив себе закинуть только подкаталоги скажем с 500 по 999 ?
Если я всё правильно понял, можно попробовать так:

Shell

tar -C main -cvf - $(seq 500 999) | gzip -9 > main.tar.gz
возможно, есть более оптимальный вариант...
Добавлено (09:49):
Ещё вариант:

Shell

tar -C main -cvf - {500..999} | gzip -9 > main.tar.gz
для bash, zsh и ksh93
Спасибо сказали:
Nolan
Сообщения: 23

Re: Как заархивировать только часть каталогов?

Сообщение Nolan »

Спасибо, буду пробовать
Спасибо сказали:
Nolan
Сообщения: 23

Re: Как заархивировать только часть каталогов?

Сообщение Nolan »

Последняя команда отработала ок.
Оно получается все перебирает варианты подпапок из диапазона, поэтому в выводе много "ошибок"? типа:

tar: 997: Cannot stat: No such file or directory
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Как заархивировать только часть каталогов?

Сообщение IMB »

Код: Выделить всё

TAR(1)                          GNU TAR Manual                          TAR(1)

NAME
       tar - an archiving utility
...........
       --exclude=PATTERN
              Exclude  files  matching  PATTERN, a glob(3)-style wildcard pat‐
              tern.
........
возможно поможет, параметров exclude несколько
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Как заархивировать только часть каталогов?

Сообщение MiK13 »

Nolan писал(а):
21.01.2022 09:30
Приветствую.
Есть структура директорий

Код: Выделить всё

- main
-- 1
-- 2
-- ...
-- 999
, т.е. у main в подкаталогах могут быть названия - только числа от 1 до 999, а внутри них уже данные
, как мне командой tar в архив себе закинуть только подкаталоги скажем с 500 по 999 ?
Спасибо.
А чем не устраивает команда tar cvfz archiv.tgz [5-9][0-9][0-9] ?
А если есть mc, то можно в нём выделить нужные каталоги, а потом запаковать их командой
tar cvfz archiv.tgz %u
Спасибо сказали:
Ответить