使用远程复制(scp)执行本地复制

时间:2016-08-14 15:15:59

标签: bash performance unix scp cp

我有一个脚本可以将一些内容从本地复制到远程,其中remote作为输入参数。

为此,我使用scp并且它还支持本地副本(意味着作为输入的遥控器与本地匹配)。

我想知道是否值得努力更改脚本,以便在这种特殊情况下,cp将被调用而不是scp。或许你知道scp的内部实现是否为我做了这个?

1 个答案:

答案 0 :(得分:2)

不要担心哪个更快,为什么不在脚本中实现一些分支

if [ "$1" = "local" ]
then
 #Use cp
else
 #Use scp
fi

也就是说,scp应该比cp慢,因为联机帮助页说:

  

scp在网络上的主机之间复制文件。它使用ssh(1)   数据传输,并使用相同的身份验证并提供   与ssh(1)相同的安全性。与rcp(1)不同,scp会要求输入密码   或者如果认证需要密码短语。

scp中的开销是在传输发生之前验证主机和来宾所花费的时间。

但您可以将-o NoHostAuthenticationForLocalhost选项与scp一起用作解决方法。

scp -o NoHostAuthenticationForLocalhost target destination

应该与cp

一样快