Я ищу программу 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
, даже если промежуточные каталоги имеют файлы. (Примечание - включение должно предшествовать исключениям.)
Есть ли другие варианты?