Я пытаюсь без рекурсивного копирования содержимого ряда каталогов в другую удаленную систему.
/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file
dir1, dir2 и dir3 содержат много каталогов, которые я не хочу копировать. Скопируйте на удаленном хосте в / dirB, сохраняя ту же структуру каталогов.
Я старался:
rsync /dirA/*/ host:/dirB/
rsync /dirA/ host:/dirB/
Но они не делают то, что я хочу.
-f '- /*/'
для ограничения только файлы верхнего уровня. Мне также пришлось указать,-f '- .*'
чтобы исключить точечные файлы, так как я синхронизировал домашний каталог.Решение выше (от PleaseStand) не работает для меня по некоторым причинам. Это сработало, хотя:
rsync -avc --no-r ./source/* ./destination/
Есть также этот альтернативный вариант:
rsync -avc --exclude "/" ./source/ ./destination/
источник
Одна из «особенностей» rsync - это то, как анализируются каталоги.
rsync /dirA/ host:/dirB/
иrsync /dirA host:/dirB
должен быть теоретически эквивалентным.Как не желая поощрять рекурсивность, вы хотите избежать
-r
,-a
что в дополнение к другим вещам подразумевает-r
.Я еще не совсем закончил исследование, но это мой начальный ответ.
источник