我想从本地计算机到服务器执行rsync
操作。在一个不存在的目录上,我希望rsync
首先在服务器上创建该目录。
我该怎么做呢?
发布于 2014-04-07 17:26:37
如果要创建的叶目录多于最后一个叶目录,则可以先运行单独的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/。
发布于 2013-04-23 08:22:34
假设您正在使用ssh连接rsync,那么在此之前发送ssh命令会怎么样:
ssh user@server mkdir -p existingdir/newdir
如果它已经存在,则不会发生任何事情
发布于 2013-07-28 19:19:59
-R, --relative
选项将执行此操作。
例如:如果你想备份/var/named/chroot
并在远程服务器上创建相同的目录结构,那么-R
就会这么做。
https://stackoverflow.com/questions/1636889
复制相似问题