Answers:
花括号不是通配符模式。查看bash扩展的文档:括号在此过程中非常早地扩展,而通配符模式在最后一个步骤¹中扩展。
最初,命令由两个词echo
,*{1..12}
。括号展开之后,命令包含13个字:echo
,*1
,*2
,..., *12
。然后扩展通配符模式。*1
扩展到以结尾的文件名列表,该列表1
不仅包括,file1
而且还包括file11
(随后按字典顺序排序)。同样*2
扩展到file12
和file2
(按此顺序)。所以,你得到echo
,file1
,file11
,file12
,file2
,然后其他通配符匹配单个文件:file3
,file4
,..., file12
。
¹ 最后,如果您遵循手册的说明,但是“引号删除”并不是真正的事情-引号的解析早于扩展过程。