Olá. Por que quando fazemos cat arquivo*.txt, o conteúdo de "arquivo10.txt" é impresso primeiro ? Não deveria ser impresso o conteúdo de "aquivo1.txt", "arquivo2.txt" e "arquivo3.txt" primeiramente ?
Olá. Por que quando fazemos cat arquivo*.txt, o conteúdo de "arquivo10.txt" é impresso primeiro ? Não deveria ser impresso o conteúdo de "aquivo1.txt", "arquivo2.txt" e "arquivo3.txt" primeiramente ?
Oi Otávio,
A princípio essa ordenação pode parecer confusa, mas ela faz todo sentido. Ela funciona exatamente como a usada para ordenar palavras num dicionário. Para saber se uma palavra vem antes da outra, você compara a primeira letra que é diferente, certo? Por exemplo,
bras*a*
bras*i*leiro
A palavra brasa vem antes de brasileiro já que a letra a vem antes da letra i.
Agora, no seu caso, temos a seguinte ordem
arquivo*1*0.txt
arquivo*2*.txt
pois 1 vem antes de 2.
Para evitar esse tipo de comportamento, muitos programadores usam nomes como arquivo001.txt, arquivo002.txt, etc. Dessa forma, o primeiro caractere diferente é sempre um número, portanto a ordem "natural" é preservada.