scp 有时会在我的命令中添加“-f”标志

scp 有时会在我的命令中添加“-f”标志

当使用 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 协议的页面,如果你有兴趣的话。

相关内容