As chaves não são padrões de caractere curinga. Verifique a documentação das expansões do bash : chaves são expandidas muito cedo no processo, e os padrões de caracteres curinga são expandidos na última etapa¹.
Inicialmente, o comando consiste em duas palavras echo
, *{1..12}
. Após a expansão da chave, o comando contém 13 palavras: echo
, *1
, *2
,…, *12
. Em seguida, os padrões de curingas são expandidos. *1
é expandido para a lista de nomes de arquivos terminados em 1
, que inclui não apenas file1
mas também file11
(que é classificado posteriormente em ordem lexicográfica). Da mesma forma, *2
expande para file12
e file2
(nesta ordem). Assim, você obtém echo
, file1
, file11
, file12
, file2
e os outros curingas que correspondem a um único arquivo: file3
, file4
,…, file12
.
¹ Além do último, se você seguir a descrição do manual, mas a “remoção de cotação” não é realmente uma coisa - as cotações são analisadas antes do processo de expansão.