LINUX.ORG.RU

Tar отказывается исключать директории при создании архива

 ,


0

1

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

tar cf file.tar --exclude '/home/user/.cache' /home/user
отказывается исключать /home/user/.cache из архива (все равно ее архивирует)
как то не так понимаю использование?

исправил опечатку в команде (добавил в конце архивируемую директорию)

★★

Последнее исправление: safocl (всего исправлений: 1)

Позиция параметров имеет значение. Если этот '--exclude' в конце, или после архивируемых файлов/диреекторий, то он будет просто игнорироваться.

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

так у меня вроде он норм стоит... опечатка в посте — в конце еще ессесна директория юзера которую архивирую

safocl ★★
() автор топика
tree testdir/
testdir/
├── 1
│   └── 1.txt
├── 2
│   └── 2.txt
└── 3
    └── 3.txt

tar --exclude="testdir/3" -cvf testdir.tar testdir
testdir/
testdir/1/
testdir/1/1.txt
testdir/2/
testdir/2/2.txt
Yorween
()
Ответ на: комментарий от Yorween

так тоже пробовал, не помогает почемуто — включало директорию кэша в архив...
т.е. и до и после команды -c указывал эксклюде

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

конечно, может там одинарные кавычки как то криво работают с двойными не пробовал... и не надо ли там в пути экранировать слешем точку?

safocl ★★
() автор топика

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

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

А впрочем у меня корректно работает и пример из ОП, не знаю даже где ещё можно было накосячить. У меня почему-то всегда всё работает (если оно работает в принципе, причём система кастомная по самое небалуйся гента), я получается эталонный УМВРщик?

anonymous
()

а и да, забыл упоминуть — все енто происходило от рута из под другого пользователя.

safocl ★★
() автор топика

попробовал с другой директорией, все роббит. почему в ентом случае не роббило — загадка

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

Проверил с sudo su и sudo на случай косяков sudo. Скорее всего накосячил где-то ещё и было совсем не так, как рассказываешь.

anonymous
()

в exclude нужно писать относительные пути, без / в начале. Об этом предупреждает tar обычно в stderr.

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

Хотя нет, мой bsdtar вроде тоже удаляет. Но вариант с погимпленным таром остаётся наверное?

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

имеется арч

в раче вроде ванильный

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

В старой версии(1.27 кажется, точно не помню) был баг - он их удалял только из аргументов директорий, которые требовалось запаковать, но не из аргументов --exclude. Следовательно, наблюдалось поведение, описанное ТС. Так как ТС версию tar и используемый дистрибутив не указал - я и предположил что он у него не очень новый.

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

ничего такого не было точно. однако мож ерроры не выводятся в терминал по умолчанию?

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

прошу прощения

`--> tar --version         
tar (GNU tar) 1.32
Copyright (C) 2019 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <https://gnu.org/licenses/gpl.html>
Это свободное ПО: вы можете изменять и распространять его.
Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

Авторы: John Gilmore и Jay Fenlason.

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

а там разве не паттерны возможны?
ведь, если я укажу там cache он что не должен все что содержит это название не включать в архив?
я просто так пробовал, но однако все так же включал

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