Исключение папки из rsync в зависимости от местоположения - PullRequest
0 голосов
/ 25 октября 2019

Как исключить имя папки из Rsync на основе относительного местоположения?

У меня есть проект Django, который я хочу синхронизировать между двумя серверами, и в нем есть каталог ./static верхнего уровня, содержащийсгенерированные статические файлы, которые я хочу исключить, но у них также есть каталоги ./project/<app>/static в подпапках, которые содержат несгенерированные файлы, которые я хочу загрузить.

Я пытался:

rsync --archive --recursive --verbose --perms --times --links --compress --copy-links --progress \
    --exclude=./static \
    --include=.* \
    --delete --delete-before --force \
    . user@host:remote_path/

но это удаляет все файлы в удаленном ./static, которые не находятся на моем локальном хосте. Почему не уважают --exclude=./static?

Я подозреваю, что это потому, что флаг --delete, который, как говорят документы, заставляет rsync удалить файлы в месте назначения, которого нет у источника. Однако не должен ли флаг исключения препятствовать проверке этой папки? Как мне это исправить?

...