/bin/ls вывод не соответствует странице справочника

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 работать нормальный путь (с . файлы сначала - который не является алфавитным ни один)?

7
задан 14 March 2019 в 05:16

1 ответ

Порядок определяется сортирующей последовательностью Вашей локали.

Напр. в моей локали по умолчанию (который является 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.

12
ответ дан 23 November 2019 в 06:20

Другие вопросы по тегам:

Похожие вопросы: