示例:
rsync /tmp/fol1/fol2/fol3/foln user@addr:/tmp/fol1/fol2/fol3/foln
我的主要问题是文件夹/ tmp / fol1在远程计算机上不存在。
我可以使用哪些参数强制rsync创建此树?
答案 0 :(得分:23)
我今天遇到了同样的问题并找到了解决方案here。
您可以这样做:
rsync -avR foo/bar/baz.c remote:/tmp/
或:
rsync -avR somedir/./foo/bar/baz.c remote:/tmp/
在远程计算机中创建/tmp/foo/bar/baz.c。
请参阅--relative/-R
的{{1}}部分了解详情。
答案 1 :(得分:16)
这样做的一个技巧是使用--rsync-path
参数和以下值:
--rsync-path="mkdir -p /tmp/fol1 && rsync"
使用--rsync-path,您可以指定将在远程计算机中启动rsync的程序,并在shell的帮助下运行。
答案 2 :(得分:1)
您可以通过bash执行此操作并打开ssh隧道,然后创建需要进行rsync数据的文件结构。每次完成同步时,这些临时文件夹是否会更改?例如它是一周中的每一天吗?
ssh user@address
mkdir -p tmp/fol1
rsync avz /tmp/fol1/fol2/fol3/foln user@addr:/tmp/fol1/fol2/fol3/foln
fi