Как исключить имя папки из 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 удалить файлы в месте назначения, которого нет у источника. Однако не должен ли флаг исключения препятствовать проверке этой папки? Как мне это исправить?