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

Cra*_*rel 32 rsync

例:

rsync /tmp/fol1/fol2/fol3/foln user@addr:/tmp/fol1/fol2/fol3/foln
Run Code Online (Sandbox Code Playgroud)

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

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

Ana*_*thu 24

我今天遇到了同样的问题,在这里找到了解决方案.

你可以这样做:

rsync -avR foo/bar/baz.c remote:/tmp/
Run Code Online (Sandbox Code Playgroud)

要么:

rsync -avR somedir/./foo/bar/baz.c remote:/tmp/
Run Code Online (Sandbox Code Playgroud)

在远程计算机中创建/tmp/foo/bar/baz.c.

有关详细信息,请参阅--relative/-R部分man rsync.

  • 这是一个非常好的解决方案。但它不适用于 rsync 的 Cygwin 端口 :( (2认同)

bar*_*cel 16

这样做的一个技巧是使用--rsync-path具有以下值的参数:

--rsync-path="mkdir -p /tmp/fol1 && rsync"
Run Code Online (Sandbox Code Playgroud)

使用--rsync-path,您可以指定将在远程计算机中启动rsync的程序,并在shell的帮助下运行.


Pap*_*ost 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
Run Code Online (Sandbox Code Playgroud)