A ordem de classificação depende da localidade. O C
locale padrão é classificado no seu exemplo:
$ LC_COLLATE=C ls -A
.hidden Zappa aardvark vent water zebra
Mas muitos outros dão prioridade às letras e ignoram o caso e os períodos principais:
$ LC_COLLATE=en_US.UTF-8 ls -A
aardvark .hidden vent water Zappa zebra
(Eu não ficaria surpreso se algumas localidades também considerassem caracteres como v e w como iguais, mas não consigo criar uma que faça isso. )
Claro, você precisa ter essas localidades no sistema. locale -a
deve mostrar as localidades atualmente utilizáveis no sistema, e você pode usar locale-gen $localename
para gerar as que está faltando. Então, há dpkg-reconfigure locales
que mostra uma lista onde você pode escolher quais localidades gerar.