scp 检查存在性的顺序错误

scp 检查存在性的顺序错误

我刚刚遇到了一个我认为是 scp 中奇怪的行为。请考虑以下内容:

root@box:~$ scp foo.txt [email protected]:
[email protected]'s password:
foo.txt: No such file or directory

我觉得很奇怪,在登录远程服务器之前,我没有收到“没有这样的文件”的错误,所以,这是一个错误吗?如果不是,为什么这种行为是可取的?

我在 Debian Jessie 上运行 openssh-client 版本 1:6.7p1-5。

答案1

我认为这实际上主要是代码效率问题。要改变这种行为,scp 需要在创建连接之前检查文件是否存在。建立连接时,仍有可能文件已被删除。这意味着连接前检查实际上是不需要的。从用户体验的角度来看,无论如何这样做都是有意义的……

相关内容