scp +如果远程机器上有相同的文件名,避免复制?

有没有任何选项可以告诉scp命令 – 在远程机器上存在文件的情况下,不要复制当前机器上的文件

例如

在我的机器上我有文件 –

/etc/secret-pw.txt 

在远程机器上,我也有文件 –

 /etc/secret-pw.txt 

所以

 scp /etc/secret-pw.txt $remote_machine:/etc 

将破坏secret-pw.txt ,并且scp不会问:覆盖目标文件

如果scp在目标机器上存在文件,是否有避免复制的选项?

更新:我无法安装rsync或任何其他程序。

你应该使用rsync而不是scp 。 它会给你你所需要的。

如果你不能安装rsync (就像你在注释中提到的那样),你需要预先运行一个脚本来检查文件是否存在,并用ssh运行它。

SCP不幸的是没有提供任何选择。

但是你可以使用标准的工具,像这样:

 ssh $remote_machine -- cp --no-clobber /dev/stdin /etc/secret-pw.txt < /etc/secret-pw.txt 

请注意,使用这个技巧,您将获得cp所有功能。