scp:为什么“名称或服务未知”优先于“没有这样的文件或目录”?

scp:为什么“名称或服务未知”优先于“没有这样的文件或目录”?

考虑:

$ file xxx
xxx: cannot open `xxx' (No such file or directory)

那么为什么:

$ scp xxx [email protected]
ssh: Could not resolve hostname xxx.xx: Name or service not known
lost connection

代替:

$ scp xxx [email protected]
xxx: cannot open `xxx' (No such file or directory)

如果没有这样的文件或目录,那么为什么首先要尝试连接呢?

scp是不是逻辑有问题?

答案1

这是事物执行顺序的结果scp。顺序大致是:

  1. 打开与远程计算机的连接
  2. 发送/接收第一个文件
  3. 发送/接收第二个文件
  4. ...ETC...
  5. 紧密连接

由于它会在第 1 步发现连接问题,因此在开始对文件执行任何操作之前,它会在此时出错。

它可以在建立连接之前预先检查文件(仅用于发送 - 接收时,逻辑上它首先建立连接),但这是一个额外的步骤,实际上使错误处理更加复杂,因为存在额外的错误情况,即文件在预检查和实际发送之间消失。

相关内容