Я ищу программу rsync, которая создаст любые отсутствующие родительские каталоги на удаленной стороне.
Например, если у меня есть /top/a/b/c/d на одном сервере и только /top/a существует на удаленном сервере, я хочу скопировать d на удаленный сервер и создать каталоги b и c, созданные как хорошо.
Команда:
rsync /top/a/b/c/d remote:/top/a/b/c
не будет работать, потому что /tmp/a/b не существует на удаленном сервере. И если он существует, файл d будет скопирован на путь /top/a/b/c.
Это можно сделать с помощью rsync с помощью переключателей --include и --exclude, но это очень важно, например:
rsync -v -r a dest:dir \
--include 'a/b' \
--include 'a/b/c' \
--include 'a/b/c/d' \
--include 'a/b/c/d/e' \
--exclude 'a/*' \
--exclude 'a/b/*' \
--exclude 'a/b/c/*' \
--exclude 'a/b/c/d/*'
копирует только a/b/c/d/e в dest:dir/a/b/c/d/e, даже если промежуточные каталоги имеют файлы. (Примечание - включение должно предшествовать исключениям.)
Есть ли другие варианты?