在csh shell中,scp使用通配符*报告no match错误

执行命令及错误提示如图:

图中已经省略敏感信息

经过Google查询,原因如下:

shell 不会按照远程地址上的文件去扩展参数,当你使用 ip:/home/tommy/*,因为本地当前目录中,十不存在 ip:/home/tommy/*,所以匹配失败。默认情况下,bash 在匹配失败时就使用原来的内容,zsh 则报告一个错误。在 zsh 中执行 setopt nonomatch 则告诉它不要报告 no matches 的错误,而是当匹配失败时直接使用原来的内容。

实际上,不管是 bash 还是 zsh(还是别的什么),不管设置了什么选项,只要把 ip:/home/tommy/* 加上引号,就可解决问题。

上一篇
下一篇