我正在寻找一个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
将被复制到 path /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
(注意 - 包含必须在排除之前。)
还有其他选择吗?