![rsync зеркальные файлы-из](https://rvso.com/image/1326448/rsync%20%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B8%D0%B7.png)
Следующая команда рекурсивно копирует файлы из $MIRROR_SOURCES относительно $MIRROR_SOURCE в $MIRROR_DEST; но флаг удаления не работает.
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
решение1
Читать--удалитьвнимательно man rsync
, выделено мной:
Это сообщает rsync о необходимости удалить посторонние файлы с принимающей стороны (те, которые не находятся на отправляющей стороне), нотолько для синхронизируемых каталогов. Вы, должно быть, попросили rsync отправить весь каталог (например, "dir" или "dir/") без использования подстановочного знака для содержимого каталога (например, "dir/*"), поскольку подстановочный знак раскрывается оболочкой, и rsync, таким образом, получает запрос на передачу отдельных файлов, а не родительского каталога файлов. Файлы, исключенные из передачи, также исключаются из удаления, если только вы не используете опцию --delete-excluded.или пометить правила как соответствующие только на отправляющей стороне (см. модификаторы включения/исключения в разделе ПРАВИЛА ФИЛЬТРА).
Суть истории в том, что это делается только для того, что вы указали для синхронизации, и зависит от того, указали ли вы подстановочный знак или нет. Если вы этого не хотите, но хотите, чтобы это происходило везде, то вы --delete-excluded
также можете указать флаг.