rsync - 如何配置 rsync 在远程服务器上创建目标目录?

标签 rsync

我想从本地计算机到服务器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/

相关文章:

linux - 在后台运行 rsync

ssh - 如何将目录从本地机器复制到远程机器

docker - 两个 docker 容器之间的 rsync

javascript - 仅当从 Node 运行时,Rsync 才会失败,退出代码为 23

rsync - `scp` 与 `rsync` 有什么不同?

linux - rsync 未更改文件

rsync 和 logrotate 每天传输旧日志

linux - rsync 包含文件递归

ftp - 有没有办法将文件同步到未安装 rsync 的远程位置?

http - 通过 http 传输文件的二进制差异(增量)并在服务器上合并差异