如何将文件rsync到不存在的远程目录?

时间:2011-12-01 00:28:49

标签: rsync

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

我尝试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:/ home / me / somedirectory /`)

2 个答案:

答案 0 :(得分:4)

只需在目标目录上添加一个斜杠即可。像这样:

rsync foo.txt remotemachine:somedirectory /

假设“/ home / me”是远程计算机上的主目录,则无需在命令行中指定它。此外,除非您只是喜欢这样做,否则不需要使用-e来混淆rsync。

答案 1 :(得分: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。