Как использовать флаг rsync --ignore-non-existing?

Как использовать флаг rsync --ignore-non-existing?

Я хочу синхронизировать два каталога так, чтобы локальная версия могла содержать толькоподмножествоудаленной версии. Таким образом, их синхронизация должна привести к тому, что любые изменения в локальном подмножестве будут отправлены в удаленный каталог, а любые изменения в удаленном каталоге, внесенные в соответствующее подмножество, будут втянуты в локальный каталог. Однако я не хочу, чтобы какие-либо новые файлы или каталоги были извлечены из удаленного каталога без их явного копирования.

(Причина, по которой я хочу это сделать, заключается в том, что у меня очень большая музыкальная коллекция на удаленном сервере, но я не могу поместить всю коллекцию на свой ноутбук сразу из-за нехватки места на диске. Однако я хотел бы сохранить ту часть коллекции, которая у меня есть локально, синхронизированной с соответствующей частью на сервере, особенно в случаях, когда я обновил теги ID3, комментарии Vorbis и т. д.)

Флаг rsync, --ignore-non-existingсудя по его документации на странице man, показался разумным способом сделать это, но он не дал ожидаемых результатов. Он пропускает первый уровень подкаталогов, хотя оба корневых каталога содержат одних и тех же потомков.

Например, если удаленный каталог example.org:/path/to/it/содержит dir1и dir2, а локальный каталог /other/dir/содержит dir1и dir2, я получаю следующие результаты...

$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/
skipping directory .

Или попробуйте с подстановочным знаком...

$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/* /other/dir/
skipping directory dir1
skipping directory dir2

Кто-нибудь знает, как правильно использовать этот флаг? Или я неправильно понимаю его назначение? Или, если у вас есть другие предложения по синхронизации подмножества каталога, пожалуйста, дайте мне знать.

Спасибо. :)

решение1

Попробуйте сделать это рекурсивно:
rsync --recursive --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/

Связанный контент