转载请注明文章出处:zsh使用scp命令时*通配符出现no matches的错误html
MacOS升级后zsh成了默认的shell,顺应潮流开始了zsh的使用之旅。linux
今天使用scp
复制远程多个文件时出现以下错误:web
# 复制某个目录下的全部配置文件(*.conf) scp host:/xxxx/*.conf . # 错误以下错误 # zsh: no matches found: host:/xxxx/*.conf
很确定这条命令语句在bash中能正常如期工做,出现这样的问题应该是zsh的锅。做为资深linux用户,能够很快看出了问题所在:zsh试图将*通配符展开,在本地未找到对应文件,因而出现“no matches”的错误。shell
通过我的尝试以及网上搜索,有两种解决方案:bash
scp "host:/xxxx/*.conf" .
,或者scp 'host:/xxxx/*.conf' .
。也能够只引用路径部分,例如:scp host:'/xxxx/*.conf' .
;scp host:/xxxx/\*.conf .
。setopt nonomatch
,而后再使用scp
命令。推荐的作法是写入到.zshrc文件中,让之后的使用中自动生效。