rsync/rsnapshot и исключить / включить каталог, абсолютный путь

Я использую rsnapshot и хочу исключить каталог по абсолютному пути.

Я добавил в rsnapshot.conf exclude /home/user/datarsnapshot будет использовать эту команду rsync:

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=/home/user/data /home \
    /backupdir/hourly.0/localhost/

и это работает, это исключает /home/user/data Дир, но мне не понятно, почему это работает. Чтение man-страниц rsync (и, например, этого ответа https://askubuntu.com/a/349625) исключает / включает шаблоны, которые начинаются с / являются, привязаны к корню передачи, поэтому я думал, что это не удастся, потому что это попытаться исключить

/home/home/user/data

Может кто-нибудь прояснить мне этот момент?
Как правильно исключить каталог, используя абсолютный путь?

Спасибо за помощь

1 ответ

Я знаю, что это старый, но только для записи...

--Exclude указывает шаблон, а не местоположение в дереве каталогов "/ home". rsync ничего не добавит к этому шаблону. поэтому "/ home" не добавляется / не дублируется, потому что вы указали --relative.

если вы добавите -iv к вашей команде rsync, rsync перечислит все каталоги и файлы в "/ home", которые он будет обрабатывать. Вы заметите, что любой элемент каталога с "/ home / user / data" будет скрыт из-за шаблона исключения "/ home / user / data /"

если вы использовали --exclude =data, то все элементы dir с именем "data" будут опущены. так, например, / home / user / data, или /home/user2/data, или /home/user3/data, также будут опущены. так как у всех есть образец "данные" в них.

Другие вопросы по тегам