当使用 SCP 从远程主机复制到本地(例如scp -v foo-host:/source/path dest
:)时,我查看详细输出并注意到这是通过 SSH 发送的命令:
debug1: Sending command: scp -v -f /source/path
我想不出 SSH 会注入此标志的任何原因,在我的 OS X 手册页中也没有找到它(所以这是一个 BSD 命令,仍然是 OpenSSH 的一部分)。我似乎在任何地方都找不到有关此内容的任何文档。我没有设置任何别名来执行此操作。
为什么要添加这个标志,添加这个标志的原因是什么,它起什么作用?
答案1
debug1: Sending command: scp -v -f /source/path
这是本地进程请求在远程服务器上执行的命令scp
。scp 通过在远程主机上启动 scp 的另一个副本来工作。两个 scp 实例相互通信以执行文件传输 - 一个发送文件,另一个接收文件。
“-f” 是标志,表示scp
它正在作为远程实例运行,并且应该发送命令行上列出的文件。或者,“-t” 表示它是一个应该接收文件的远程实例。
这些标志没有记录,因为它们不打算供用户使用。这是描述 scp 协议的页面,如果你有兴趣的话。