linux中a{,b}和a{,b}*这两种写法有什么不同?

 ###### 问题遇到的现象和发生背景
在学习通配符的使用方式的时候遇见这个问题:ls a{,b}*会把匹配到的文件多展示一个,不知道是啥原理,而且结果也并不准确。

运行结果及报错内容

img


这里展示了两次ab和abd文件

ls {a,b} 分解开是 ls a && ls b
ls a{,b}* 分解开是 ls a* && ls ab*

*号表示0个或多个,所以{,b}*表示0个或多个b。 中间那个,表示包含b,比如aabc也满足。