怎么解决zsh使用scp命令时*通配符出现nomatches的错误
这篇文章主要讲解了“怎么解决zsh使用scp命令时*通配符出现no matches的错误”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决zsh使用scp命令时*通配符出现no matches的错误”吧!
创新互联建站专业为企业提供慈溪网站建设、慈溪做网站、慈溪网站设计、慈溪网站制作等企业网站建设、网页设计与制作、慈溪企业网站模板建站服务,十年慈溪做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
MacOS升级后zsh成了默认的shell,顺应潮流开始了zsh的使用之旅。
今天使用scp
复制远程多个文件时出现如下错误:
# 复制某个目录下的所有配置文件(*.conf) scp host:/xxxx/*.conf . # 错误如下错误 # zsh: no matches found: host:/xxxx/*.conf
很肯定这条命令语句在bash中能正常如期工作,出现这样的问题应该是zsh的锅。作为资深linux用户,可以很快看出了问题所在:zsh试图将*通配符展开,在本地未找到对应文件,于是出现“no matches”的错误。
经过个人尝试以及网上搜索,有两种解决方案:
不要让zsh将*号展开;具体做法有:
将*号部分用引号引起来,单双引号都所无谓。例如:
scp "host:/xxxx/*.conf" .
,或者scp 'host:/xxxx/*.conf' .
。也可以只引用路径部分,例如:scp host:'/xxxx/*.conf' .
;用反斜杆阻止zsh转义:
scp host:/xxxx/\*.conf .
。设置nonomatch选项,让zsh匹配失败时不报错并使用原本内容。具体做法是:
setopt nonomatch
,然后再使用scp
命令。推荐的做法是写入到.zshrc文件中,让以后的使用中自动生效。
参考
zsh使用scp命令时*通配符无法使用
感谢各位的阅读,以上就是“怎么解决zsh使用scp命令时*通配符出现no matches的错误”的内容了,经过本文的学习后,相信大家对怎么解决zsh使用scp命令时*通配符出现no matches的错误这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
文章名称:怎么解决zsh使用scp命令时*通配符出现nomatches的错误
网页路径:http://scjbc.cn/article/gipgch.html