当我尝试在其路径中使用斜杠 scp 文件时,该路径被引用为本地主机,最后一个路径组件被额外引用为远程主机,例如scp host:"a/b/'c'" .
,它失败了
protocol error: filename does not match request
除非我使用该-T
选项。但是,如果引用了任何其他路径组件,例如scp host:"a/'b'/c" .
,它可以工作。此外,如果没有为本地主机引用路径,例如scp host:a/b/'c' .
,它可以工作。
手册页文档-T
如下:
禁用严格的文件名检查。默认情况下,将文件从远程主机复制到本地目录时,scp 检查接收到的文件名是否与命令行上请求的文件名匹配,以防止远程端发送意外或不需要的文件。由于各种操作系统和 shell 解释文件名通配符的方式不同,这些检查可能会导致想要的文件被拒绝。此选项以完全信任服务器不会发送意外文件名为代价禁用这些检查。
我不明白这个描述如何解释我看到的行为。scp 行为的基本原理是什么?有没有办法禁用这个“功能”?
我正在运行 Ubuntu 16.04,而远程主机正在运行 Ubuntu 12.04。