2011-12-01 28 views
4

假设我想在本地计算机上将rsync文件foo.txt设置为在远程计算机上的文件/home/me/somedirectory/bar.txt,并且该somedirectory/尚不存在。我该怎么做呢?如何将文件rsync同步到不存在的远程目录?

我试过rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/bar.txt,但我得到rsync: push_dir#3 "/home/me/somedirectory" failed: No such file or directory (2)错误。

(复制该文件不重命名它的作品,虽然这,这个运行良好:rsync的-e SSH -z foo.txt的remotemachine:/首页/我/ somedirectory /`)

+0

我想你可以找到同样的问题回答[这里](http://stackoverflow.com/questions/1636889/rsync-how-can-i-configure-it-to-create-target-directory-on-服务器)。 – frarees

+0

我试着添加'--recursive'标志,但是我得到了同样的错误。 – grautur

回答

4

只要把尾随对目标目录进行斜杠。事情是这样的:

的rsync foo.txt的remotemachine:somedirectory/

假设“/家/我”是在远程机器上你的家目录,也没有必要在命令行中指定它。另外,除非你喜欢这样做,否则你不需要用-e混淆你的rsync。

1

可以在2个stepes成功地做到了这一过程: -

1] rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/ 这将复制foo.txt的,并创建目录somedirectory的目的地。

然后

2] rsync -e ssh -z --delete-after foo.txt remotemachine:/home/me/somedirectory/bar.txt

,在这里你可以使用--delete-after选项删除目的地foo.txt的。 你可以从手册页看到它的用法。此选项必须与-r选项一起使用 这符合您的目的。

或者如果第二个命令不起作用,则使用: - rsync -e ssh -z foo.txt remotemachine:/home/me/somedirectory/bar.txt 并手动删除foo.txt。