创建CakePHP示例项目报zsh: no matches found错误如何解决
报错原因
该错误由zsh shell的通配符(glob)扩展机制导致:zsh会默认解析命令参数中的*字符作为本地文件匹配通配符,优先尝试查找当前目录下符合cakephp/app:4.开头命名规则的文件,找不到匹配项时就会直接抛出no matches found错误,不会将该参数传递给composer执行。
解决方法
你可以任选以下任意一种方案处理:
- 给带通配符的版本约束参数加单引号,阻止zsh解析特殊字符:
php composer.phar create-project --prefer-dist 'cakephp/app:4.*' cms
- 用反斜杠转义
*字符,让zsh将其识别为普通字符传递:
php composer.phar create-project --prefer-dist cakephp/app:4.\* cms
- 临时关闭当前命令的通配符扩展功能:
noglob php composer.phar create-project --prefer-dist cakephp/app:4.* cms
如果经常遇到同类通配符解析冲突,可以在zsh配置文件~/.zshrc中添加setopt nonomatch配置,设置后zsh找不到匹配文件时会直接将参数原样传递给执行命令,修改后执行source ~/.zshrc即可生效。
内容的提问来源于stack exchange,提问作者EastsideDev
相关产品推荐
相关产品推荐

