Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Arquivo 10

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 ?

1 resposta
solução!

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.