我想从本地计算机到服务器rsync
。在不存在的目录上,我希望 rsync 首先在服务器上创建该目录。
我怎样才能做到这一点?
最佳答案
如果要创建的叶目录不止最后一个,您可以先运行单独的 ssh ... mkdir -p
,或者使用 --rsync-path
技巧为 explained here :
rsync -a --rsync-path="mkdir -p /tmp/x/y/z/ && rsync" $source user@remote:/tmp/x/y/z/
或者按照托尼的建议使用--relative
选项。在这种情况下,您只需指定目标的根目录(必须存在),而不指定将创建的源的目录结构:
rsync -a --relative /new/x/y/z/ user@remote:/pre_existing/dir/
这样,您最终将得到/pre_existing/dir/new/x/y/z/
如果您想创建“y/z/”,但不在“new/x/”内,则可以在您想要的位置添加 ./
--relative
开始:
rsync -a --relative /new/x/./y/z/ user@remote:/pre_existing/dir/
将创建/pre_existing/dir/y/z/。
关于rsync - 如何配置 rsync 在远程服务器上创建目标目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636889/