如何使用rsync <3.0指定相对上传path,生成子文件夹

我正在写一个脚本,我想上传单个文件,并自动生成文件夹结构像mkdir -p但我不能让rsync 2.6.9(两者)合作。

它看起来像rsync只有一个级别的文件夹,否则错误。

我试图复制得心应手ncftpput -C -R -m remote-host local-path-name remote-path-name操作(ncftp的recursion模式;复制整个目录树+尝试复制之前,使远程目标目录)。

可能?

我的尝试:

 rsync -av -e ssh /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/B/C/delete_snippet.processor.php 

收益:

rsync:push_dir#3“/var/www/vhosts/testboard.org/httpdocs/B/C”失败:没有这样的文件或目录(2)

 rsync -av -e ssh /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/ 

工程,创buildhttpdocs,但没有B / C结构。

 rsync -advR -e ssh -v /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/ 

工作,但重新创build服务器上的整个/ home / gitrepos …结构。

权限被设置为777并由用户拥有。

感谢帮助。

如果您使用rsync 2.6.7或更高版本,则可以在httpdocs之后尝试点斜杠方法来限制目录。 尝试这个:

 rsync -advR -e ssh -v /home/gitrepos/www/board/httpdocs/./B/C/delete_snippet.processor.php [email protected]:/var/www/vhosts/testboard.org/httpdocs/