如何强制rsync创建目标文件夹

时间:2012-02-11 17:05:08

标签: rsync

示例:

rsync /tmp/fol1/fol2/fol3/foln user@addr:/tmp/fol1/fol2/fol3/foln

我的主要问题是文件夹/ tmp / fol1在远程计算机上不存在。

我可以使用哪些参数强制rsync创建此树?

3 个答案:

答案 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