Присоединяюсь к вопросу.
Я прочел материал по вышеуказанной ссылке и пробовал применить exclude, но результата не было.
Ситуация такая.
В /home/illia я создал две папки: test1 и test2. В test1 лежат три папки: fold1, fold2 и fold3:
test1/
fold1
fold2
fold3
test2/
(пусто)
Из test1 я хочу "сбэкапить" папки в test2 (для пробы; в будущем бекап я буду делать на съемный винт) кроме одной папки: fold2.
Согласно инструкции исключения прописываются так: --exclude=PATTERN
Вот варианты кода, которые я перепробовал:
rsync -urlogt --delete-before --progress --exclude "/home/illia/test1/fold2" /home/illia/test1/ /home/illia/test2
(без знака =)
rsync -urlogt --delete-before --progress --exclude='/home/illia/test1/fold2' /home/illia/test1/ /home/illia/test2
(с знаком =)
rsync -urlogt --delete-before --progress --exclude=/home/illia/test1/fold2 /home/illia/test1/ /home/illia/test2
(забрал кавычки)
rsync -urlogt --delete-before --progress --exclude="fold2/" /home/illia/test1/ /home/illia/test2
(изменил путь для exclude)
rsync -urlogt --delete-before --progress --exclude='fold2/' /home/illia/test1/ /home/illia/test2
(поменял кавычки на одинарные)
На всякий случай привожу "расшифровку" кода:
-u - только обновление (не переписывает более новые файлы)
-r - рекурсивно входить в подкаталоги
-l - копировать символьные ссылки как символьные ссылки
-o - сохранять владельца
-g - сохранять группу
-t - сохранять время
--delete-before - удалить устаревшие файлы и/или папки до копирования
--progress - выводить процесс выполнения (в процентах)
--exclude - данные папки не копировать
/home/illia/test1/ - содержимое папки (именно содержимое, а не включая саму папку)
/home/illia/test2 - сюда и помещаются копируемые папки.
Все копировалось прекрасно. Лишнее удалялось. Но исключение (exclude) не срабатывало. Т.е. папка fold2 как копировалась, так и копируется.
Что я не так делаю? Вроде в синтаксисе кода не ошибся.