Следующая команда копирует файлы рекурсивно из $ MIRROR_SOURCES относительно $ MIRROR_SOURCE в $ MIRROR_DEST; но флаг удаления не работает.

rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST

1 ответ1

1

Читайте внимательно - удалите в man rsync , выделите мое:

Это говорит rsync об удалении посторонних файлов с принимающей стороны (тех, которые не на отправляющей стороне), но только для каталогов, которые синхронизируются. Вы, должно быть, попросили rsync отправить весь каталог (например, "dir" или «dir /») без использования подстановочного знака для содержимого каталога (например, «dir /*»), поскольку подстановочный знак раскрывается оболочкой, и, таким образом, rsync получает запрос на передачу отдельных файлов, а не родительский каталог файлов. Файлы, которые исключены из передачи, также исключаются из удаления, если вы не используете опцию --delete-exclude или не помечаете правила как совпадающие только на отправляющей стороне (см. Модификаторы include /exclude в разделе ПРАВИЛА ФИЛЬТРА).

Суть в том, что он делает это только для того, что вы указали для синхронизации и зависит от того, указали ли вы подстановочный знак или нет, если вы не хотите, но вместо этого хотите, чтобы это происходило везде, тогда вы можете указать --delete-excluded флаг, а также.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .