Порядок сортировки при использовании ll

Есть ли способ установить порядок сортировки файлов и каталогов при использовании ll команда? Я имею два 16.04.5 сервера с два ext4 диски. Одна папка существует на обоих дисках, содержащих те же файлы. При использовании ll на обоих серверах порядок сортировки не является тем же (ls -l имеет тот же результат):

ll на сервере a:

Alex.txt
iBoy.txt
Immatriculation.txt
Radius.txt
WonderWoman.txt

ll на сервере b:

Alex.txt
Immatriculation.txt
Radius.txt
WonderWoman.txt
iBoy.txt

Таким образом, различием является файл iBoy.txt. Есть ли способ выяснить, почему этот файл не расположен между Alex.txt и Immatriculation.txt как на сервере a?

РЕДАКТИРОВАНИЕ 1:

Согласно просьбе вот локали обеих систем.

locale на сервере a:

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=

locale на сервере b:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=
2
задан 20 February 2019 в 18:55

1 ответ

ls'порядок сортировки определяется установкой сопоставления Вашей локали. Можно легко проверить это с locale команда:

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_ALL=

Важный для сортировки LC_COLLATE значение. В моем примере выше, это отсортировало бы согласно правилам для en_US.UTF.8 локализация, которая отсортировала бы нечувствительные к регистру имена файлов и, кажется, игнорирует знаки пунктуации.

Можно временно переопределить глобальные настройки с переменной среды. Например, C локаль/сопоставление отсортировала бы по необработанному значению ASCII, таким образом, все прописные буквы перед нижним регистром.

LC_COLLATE=C ll
3
ответ дан 2 December 2019 в 02:40

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

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