Вопрос

Можете ли вы отсортировать лс список по имени?

Это было полезно?

Решение

Мой ls по умолчанию сортирует по имени.Что вы видите?

man ls состояния:

List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.:

Другие советы

Для чего-то простого вы можете объединить лс с Сортировать.Просто список имен файлов:
LS -1 | Сортировать

Чтобы отсортировать их в обратном порядке:
LS -1 | Сорт -Р

ls от coreutils выполняет с учетом локали сортировка по умолчанию и поэтому в некоторых случаях может давать неожиданные результаты (например, %foo буду сортировать между bar и quux в LANG=en_US).Если вам нужна сортировка ASCIIbetical, используйте

LANG=C ls

Прелесть инструментов *nix в том, что их можно комбинировать:

ls -l | sort -k9,9

Выход ls -l будет выглядеть так

-rw-rw-r-- 1 luckydonald luckydonald  532 Feb 21  2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt

Итак, с 9,9 вы сортируете столбец 9 до колонны 9, которые являются именами файлов.Вы должны указать, где остановиться (в данном случае это тот же столбец).Столбцы начинаются с 1.

Кроме того, если вы хотите игнорировать верхний/нижний регистр, добавьте --ignore-case к команде сортировки.

УВЕДОМЛЕНИЕ:«а» идет ПОСЛЕ «Z»:

$ touch A.txt aa.txt Z.txt

$ лс

A.txt Z.txt aa.txt

Файлы, отличающиеся только числовой строкой, можно сортировать по этому номеру при условии, что ему предшествует разделитель.

В этом случае можно использовать следующий синтаксис:

ls -x1 file | sort -t'<char>' -n -k2

Пример:

ls -1 TRA*log | sort -t'_' -n -k2

TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log

На странице руководства (для bash ls):

Сортируйте записи в алфавитном порядке, если нет ни -cftuSUX, ни --sort.

Проверьте свои .bashrc файл для псевдонимов.

А ls Утилита должна соответствовать стандарту IEEE Std 1003.1-2001 (POSIX.1), в котором говорится:

22027:он должен сортировать операнды каталога и не-каталога отдельно в соответствии с последовательностью сортировки в текущей локали.

26027:По умолчанию формат не указан, но вывод должен быть отсортирован в алфавитном порядке по названию символа:

  • Имя библиотеки или объекта, если указано –A
  • Имя символа
  • Тип символа
  • Значение символа
  • Размер, связанный с символом, если применимо.

Для этой цели подойдет ls -X, если вы присвоили ls более полезное значение по умолчанию.

In Debian Jessie, this works nice:

ls -lah --group-directories-first

# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha

# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top