ls
в странице справочника говорится:
List information about the FILEs (the current directory by
default). Sort entries alphabetically if none of -cftuvSUX nor --sort
is specified.
и
-a, --all do not ignore entries starting with .
и
-1 list one file per line.
но
/bin/ls -a1
записи списков в алфавитном порядке именем файла с любым продвижением .
удаленный, который не является в алфавитном порядке.
sort
команда делает то же.
Есть ли любой способ добраться ls
работать нормальный путь (с .
файлы сначала - который не является алфавитным ни один)?
Порядок определяется сортирующей последовательностью Вашей локали.
Напр. в моей локали по умолчанию (который является en_CA.UTF-8
)
$ ls -A1
a
.b
c
тогда как в C
локаль
$ LC_COLLATE=C ls -A1
.b
a
c
(Я использовал -A
вместо -a
устранить .
и ..
каталоги).
Другой способ получить порядок, который Вы хотите, мог бы состоять в том, чтобы использовать -v
(вид версии) опция, как предложено в Группировке скрытых файлов и каталогов с ls - хотя это не действительно, для чего это предназначается:
-v natural sort of (version) numbers within text
С тех пор ls
почти наверняка уже искажается в Вашем .bashrc
файл, Вы могли просто изменить псевдоним (псевдонимы) там для включения -v
.