我想rsync从本地计算机到服务器。在一个不存在的目录上,我想rsync先在服务器上创建该目录。
rsync
我怎样才能做到这一点?
如果您有多个要创建的叶目录,您可以ssh ... mkdir -p先运行一个单独的目录,或者使用此处解释--rsync- path的技巧:
ssh ... mkdir -p
--rsync- path
rsync -a --rsync-path="mkdir -p /tmp/x/y/z/ && rsync" $source user@remote:/tmp/x/y/z/
或使用--relativeTony 建议的选项。在这种情况下,您只需指定必须存在的目标的根目录,而不是将创建的源的目录结构:
--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/。