假设我想在本地计算机上将文件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 /`)
答案 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。