⚠️ Tato odpověď je trochu zastaralá. Podívejte se prosím na ostatní odpovědi, zejména ty, které používají aliasy nebo
ls -v
.
Zkuste přidat
export LC_COLLATE="C"
ve vašich dotfiles nebo změnou LC_ALL
úkol:
export LC_ALL="C"
To řídí způsob, jakým funguje třídění na úrovni znaků – zatímco výchozí by bylo řazení dotfiles inline, bude to mít hodnotu sort
nejprve vypište soubory s tečkami.
Mějte však na paměti, že to v podstatě zastaví podporu vašeho skutečného národního prostředí ve všech utilitách s ohledem na národní prostředí.
Abychom šli dále, cituji manuál GNU Coreutils (důraz):
Pokud používáte národní prostředí jiné než POSIX (např. nastavením
LC_ALL
ažen_US
), pak třídění může vytvořit výstup, který je seřazený jinak než jste zvyklí.V takovém případě nastavte
LC_ALL
proměnná prostředí naC
. Upozorňujeme, že nastavení pouzeLC_COLLATE
má dva problémy. Za prvé, je neúčinné, pokudLC_ALL
je také nastaveno. Za druhé, má nedefinované chování, pokudLC_CTYPE
(neboLANG
, pokudLC_CTYPE
není nastaveno) je nastaveno na nekompatibilní hodnotu. Pokud napříkladLC_CTYPE
, získáte nedefinované chování jeja_JP.PCK
aleLC_COLLATE
jeen_US.UTF-8
.
Abychom se vyhnuli jakýmkoli změnám v celém systému bez skutečné potřeby, lze změnit pouze způsob ls
funguje pro aktuálního uživatele přidáním aliasu do .bashrc
:
alias ll='LC_COLLATE=C ls -alF'
Toto třídí soubory s tečkami jako první, umožňuje správně zpracovávat (zobrazovat a třídit) "neobvyklé" znakové sady, jako je cyrilice. Jediným viníkem je, že třídění bude rozlišovat malá a velká písmena.
Zdroj:http://ubuntuforums.org/showthread.php?t=816753
Manuová stránka ls(1) uvádí:
-v přirozený druh čísel (verzí) v textu
Zdá se, že to mění způsob řazení období a nejprve seskupují tečkové soubory. Mám:
alias ls='ls -vAF'
alias ll='ls -l'
v mém ~/.bashrc.