How do I rsync a file to a remote directory that doesn't exist?
假设我想在本地机器上rsync文件foo.txt以在远程计算机上归档/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/`)
- 我想你可以在这里找到同样的问题。
- 我试图添加--recursive标志,但得到了相同的错误。
在你的目标目录上加上一个斜线。像这样:
rsync foo.txt远程计算机:somedirectory/
假设远程机器上的home目录是"/home/me",则无需在命令行中指定它。另外,除非你只是想这样做,否则你不需要把rsync和-e弄乱。
您可以通过两个步骤成功完成此过程:
1]EDOCX1[0]这将复制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。