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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.