Я прочитал эти темы:
- rsync --delete --files-from = list / dest / не удаляет ненужные файлы
- Удалить посторонние файлы из Dest Dir через Rsync?
Но, насколько я могу судить (возможно, я что-то упустил), они не охватывают следующий вопрос:
Как попросить rsync
скопировать файлы и удалить те, что находятся на принимающей стороне, которых нет на отправляющей стороне, за исключением? (например, не удаляйте ртутный репозиторий .hg
на принимающей стороне, даже если на передающей стороне нет репозитория).
Одна возможность?
Заимствование из ответа @Richard Holloway ниже. Скажем, у меня есть следующая строка:
rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path
Насколько я понимаю, эта строка заставит rsync
удалить все на пути получения, который не существует на пути отправки, кроме тех, которые соответствуют dont_delete_me
. Мой вопрос теперь таков: будет ли rsync сохранять файлы на принимающей стороне, с которыми сопоставляются, dont_delete_me
даже если на отправляющей стороне ничего не совпадает dont_delete_me
?
rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path
не приведет ли это кrsync
удалению всего на пути получения, который не существует на пути отправки, кроме тех, которые совпадают сdont_delete_me
? Самое главное, будут лиrsync
совпадать вещи на принимающей стороне,dont_delete_me
даже если на отправляющей стороне ничего не будет совпадатьdont_delete_me
? Если это так, я думаю, что это единственная линия, которая мне нужна, верно?