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

using remote copy (scp) to perform local copy

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

为此,我正在使用 scp,它还支持本地复制(意味着作为输入给出的远程与本地匹配)。

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

与其担心哪个更快,不如在脚本中实现一些分支

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

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

scp copies files between hosts on a network. It uses ssh(1) for data transfer, and uses the same authentication and provides the same security as ssh(1). Unlike rcp(1), scp will ask for passwords or passphrases if they are needed for authentication.

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

但您可以将 -o NoHostAuthenticationForLocalhost 选项与 scp 结合使用作为解决方法。

scp -o NoHostAuthenticationForLocalhost target destination

应该和cp

一样快