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


我需要用 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。

Ubuntu bash centos Linux redhat

tsumugi 11 years, 2 months ago

 ssh user@host mkdir -p `dirname $path` && rsync ...

天然星☆↗ answered 11 years, 2 months ago

Your Answer