⚠️ 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_ALL
aen_US
), allora sort potrebbe produrre un output ordinato in modo diverso di quanto sei abituato.In tal caso, imposta
LC_ALL
variabile di ambiente aC
. Nota che impostando soloLC_COLLATE
ha due problemi. Primo, è inefficace seLC_ALL
è anche impostato. In secondo luogo, ha un comportamento indefinito seLC_CTYPE
(oLANG
, seLC_CTYPE
non è impostato) è impostato su un valore incompatibile. Ad esempio, ottieni un comportamento indefinito seLC_CTYPE
èja_JP.PCK
maLC_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.