小编Rei*_*ica的帖子

为什么 scp 的严格文件名检查拒绝引用最后一个组件而不是其他组件?

当我尝试 scp 路径中带有斜杠的文件时,该路径为本地主机引用,最后一个路径组件为远程主机另外引用,例如scp host:"a/b/'c'" .,它失败了

protocol error: filename does not match request
Run Code Online (Sandbox Code Playgroud)

除非我使用该-T选项。但是,如果引用了任何其他路径组件,例如scp host:"a/'b'/c" .,它就可以工作。此外,如果本地主机的路径没有被引用,例如scp host:a/b/'c' .,它也可以工作。

手册页文件-T为:

禁用严格的文件名检查。默认情况下,将文件从远程主机复制到本地目录时,scp 会检查接收到的文件名是否与命令行上请求的文件名匹配,以防止远程端发送意外或不需要的文件。由于各种操作系统和 shell 解释文件名通配符的方式不同,这些检查可能会导致所需文件被拒绝。此选项以完全信任服务器不会发送意外文件名为代价禁用这些检查。

我不明白这个描述如何解释我看到的行为。scp 行为的基本原理是什么?有没有办法禁用这个“功能”?

我正在运行 Ubuntu 16.04,而远程主机正在运行 Ubuntu 12.04。

scp filenames quoting

9
推荐指数
1
解决办法
2339
查看次数

如何减少将标签显示为标签?

当我在 中查看带有制表符的数据时less,制表符会扩展为空格。如果我然后使用 ctrl-c 直接将它们复制出我的终端,它们会复制为空格。另一方面,more与许多其他命令(如tail和 )一样,会保留制表符head。有没有办法less保持标签完好无损?

-r即使与 结合使用似乎也没有任何效果-U,它声称将制表符视为控制字符。我没有看到任何其他相关选项less

less whitespace

6
推荐指数
1
解决办法
3917
查看次数

标签 统计

filenames ×1

less ×1

quoting ×1

scp ×1

whitespace ×1