⚠️ Questa risposta è un po' datata. Controlla le altre risposte, in particolare quelle che utilizzano alias o
ls -v.
Prova ad aggiungere
export LC_COLLATE="C"
nei tuoi dotfile, o modificando il LC_ALL assegnazione a:
export LC_ALL="C"
Questo controlla il modo in cui funziona l'ordinamento a livello di carattere — mentre l'impostazione predefinita sarebbe ordinare i dotfile in linea, questo renderà sort elenca prima i dotfile.
Tuttavia, tieni presente che questo fondamentalmente interromperà il supporto per la tua attuale locale in tutte le utilità che riconoscono la locale.
Per andare oltre, citando il manuale GNU Coreutils (sottolineatura mia):
Se utilizzi una locale non POSIX (ad esempio, impostando
LC_ALLaen_US), allora sort potrebbe produrre un output ordinato in modo diverso di quanto sei abituato.In tal caso, imposta
LC_ALLvariabile di ambiente aC. Nota che impostando soloLC_COLLATEha due problemi. Primo, è inefficace seLC_ALLè anche impostato. In secondo luogo, ha un comportamento indefinito seLC_CTYPE(oLANG, seLC_CTYPEnon è impostato) è impostato su un valore incompatibile. Ad esempio, ottieni un comportamento indefinito seLC_CTYPEèja_JP.PCKmaLC_COLLATEèen_US.UTF-8.
Per evitare modifiche a livello di sistema senza una reale necessità, è possibile modificare solo il modo in cui ls funziona per l'utente corrente aggiungendo l'alias al .bashrc :
alias ll='LC_COLLATE=C ls -alF'
Questo ordina prima i file punto, consente di gestire correttamente (mostrare e ordinare) set di caratteri "non comuni" come il cirillico. L'unico colpevole è che l'ordinamento farà distinzione tra maiuscole e minuscole.
Fonte:http://ubuntuforums.org/showthread.php?t=816753
La manpage di ls(1) elenca:
-v ordinamento naturale dei numeri (di versione) all'interno del testo
Questo sembra cambiare il modo in cui i periodi vengono ordinati e raggruppa prima i dotfile. Ho:
alias ls='ls -vAF'
alias ll='ls -l'
nel mio ~/.bashrc.