Как исключить файл из архивации при архивации? (exclude, tar)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Как исключить файл из архивации при архивации? (exclude, tar)

Сообщение жучара »

Друзья есть вот такая папка q и в ней два файла:

Shell

$ find q -type f
q/q/foo
q/foo
$
Сархивируем её в архив, исключив из него файл q/foo (обращаю внимание на опцию --exclude):

Shell

$ rm -f temp.tar
$ tar --create --file=temp.tar --exclude=foo q
$ tar tvf temp.tar
drwxr-xr-x user/user 0 2023-08-14 19:37 q/
drwxr-xr-x user/user 0 2023-08-14 19:37 q/q/
$
Не получилось (файл q/q/foo тоже не сархивировался, а это совсем не наша цель). Ещё пробуем:

Shell

$ rm -f temp.tar
$ tar --create --file=temp.tar --exclude=q/foo q
$ tar tvf temp.tar
drwxr-xr-x user/user 0 2023-08-14 19:37 q/
drwxr-xr-x user/user 0 2023-08-14 19:37 q/q/
$
Тот же результат. Ещё пробуем:

Shell

$ rm -f temp.tar
$ tar --create --file=temp.tar --exclude=./q/foo q
$ tar tvf temp.tar
drwxr-xr-x user/user 0 2023-08-14 19:37 q/
drwxr-xr-x user/user 0 2023-08-14 19:37 q/q/
-rw-r--r-- user/user 0 2023-08-14 19:37 q/q/foo
-rw-r--r-- user/user 0 2023-08-14 19:36 q/foo
$
Опять плохо. Эксперименты с тильдой (--exclude="^q/foo") тоже не привели в желаемому результату. В общем, при архивации нужно исключить файл q/foo.
Offtopic
Уверен, можно обойтись без способа, когда сперва всё архивируем. а потом ненужное удаляем:

Shell

$ rm -f temp.tar
$ tar --create --file=temp.tar q
$ tar tvf temp.tar
drwxr-xr-x user/user 0 2023-08-14 19:37 q/
drwxr-xr-x user/user 0 2023-08-14 19:37 q/q/
-rw-r--r-- user/user 0 2023-08-14 19:37 q/q/foo
-rw-r--r-- user/user 0 2023-08-14 19:36 q/foo
$
$ tar --delete --file temp.tar q/foo
$ tar tvf temp.tar
drwxr-xr-x user/user 0 2023-08-14 19:37 q/
drwxr-xr-x user/user 0 2023-08-14 19:37 q/q/
-rw-r--r-- user/user 0 2023-08-14 19:37 q/q/foo
$
Спасибо, кто откликнется. Debian 11.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 901
ОС: debian, fedora (i3-wm)

Re: Как исключить файл из архивации при архивации? (exclude, tar)

Сообщение olecya »

На стакиксчейндж "юникс и линукс" движок время от времени выбрасывает в топ архивные темы. Например похожая на текущую прболталась почти 7 лет: https://unix.stackexchange.com/questions/317797/how-do-i-tell-tar-to-only-exclude-a-directory-off-of-the-root-but-not-a-director/754108#754108
Ну и наверное еще столько бы появлялась без моего ответа если бы не предыдущая подсказка в этой теме.
Спасибо сказали:
Ответить