rsync 同步文件如何自动创建不存在的目录?

非墨
  • 2.1k

我需要用 rsync 同步文件(是文件不是目录),但是同步到服务器可能路径中的一些目录不存在,服务器上路径中存在的目录已经给了 777 权限,rsync 命令执行时给了 -R 参数,但是仍然报错:

rsync: mkdir "/home/xxx/xxx/xxx.file" failed: No such file or directory (2)

命令为:

rsync -vzR "/home/xxx/xxx/xxx.file" "user@host:/home/yyyy/xxx/xxx.file"

以上 host 上的 /home/yyyy 目录已经给了 777 权限,/home/yyyy/xxx 目录不存在。


我刚看了 -R 的用法,应该是用相对目录,可是我可能同步的上级目录并不相同,这该怎么办呢?


唉,问题又被我自己稀里糊涂的搞定了,先 cd 到要同步的目录,然后带上 -R 参数同步文件就 OK 了。只是不明白,为毛不能用 sftp。

回复
阅读 21.9k
1 个回答
ssh user@host mkdir -p `dirname $path` && rsync ...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏