考虑:
$ 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
。顺序大致是:
- 打开与远程计算机的连接
- 发送/接收第一个文件
- 发送/接收第二个文件
- ...ETC...
- 紧密连接
由于它会在第 1 步发现连接问题,因此在开始对文件执行任何操作之前,它会在此时出错。
它可以在建立连接之前预先检查文件(仅用于发送 - 接收时,逻辑上它有首先建立连接),但这是一个额外的步骤,实际上使错误处理更加复杂,因为存在额外的错误情况,即文件在预检查和实际发送之间消失。