Chaves não são padrões curinga. Verifique a documentação das expansões do bash : chaves são expandidas muito cedo no processo e padrões curinga são expandidos na última etapa¹.
Inicialmente, o comando é composto por duas palavras echo
, *{1..12}
. Após a expansão cinta, o comando contém 13 palavras: echo
, *1
, *2
, ..., *12
. Em seguida, os padrões curinga são expandidos. *1
expande para a lista de nomes de arquivos terminados em 1
, que inclui não apenas file1
mas também file11
(que são classificados posteriormente em ordem lexicográfica). Da mesma forma, *2
expande para file12
e file2
(nesta ordem). Então você começa echo
, file1
, file11
, file12
, file2
, e depois os outros curingas que correspondeu a um único arquivo: file3
, file4
, ..., file12
.
¹ Por último, se você seguir a descrição do manual, mas a "remoção de cotação" não for realmente uma coisa - as cotações serão analisadas antes do processo de expansão.
Gilles 'SO- parar de ser mau'
fonte