Всякий раз, когда в Linux или любой другой UNIX-подобной операционной системе требуется просмотреть содержимое каталога из командной строки, ls используется именно эта команда. Команда ls выводит список содержимого каталогов, отсортированный в алфавитном порядке.

Хотя это и является основным назначением данного инструмента, он предлагает множество функций (в виде опций командной строки), которые помогут вам в различных ситуациях. В этом уроке мы рассмотрим использование некоторых из этих опций командной строки на понятных примерах. Используйте команду cd, чтобы перейти в каталог, в котором вы хотите запустить ls.
1. Как отобразить скрытые файлы/каталоги
По умолчанию команда ls не отображает скрытые файлы/каталоги. Однако вы можете заставить утилиту сделать это, используя -a опцию командной строки. Итак, чтобы отобразить все файлы/каталоги (включая скрытые — те, чьи имена начинаются с точки «.») в текущем каталоге, выполните следующую команду:
ls -a

2. Как исключить из вывода записи текущего (.) и предыдущего (..) каталогов
При использовании опций командной строки -a , в выводе также отображаются записи для текущего и предыдущего каталогов (соответственно . и ..). Если вы хотите, чтобы ls не отображал их в выводе, используйте вместо этого опцию командной строки -A .

3. Как отобразить файлы/каталоги в обратном порядке
По умолчанию команда ls отображает файлы в выводе в алфавитном порядке. Но при желании вы также можете заставить утилиту отображать файлы в обратном порядке. Для этого вам нужно использовать опцию командной строки -r .
ls -r
Вот пример:

4. Как отсортировать вывод команды ls по расширениям файлов
Чтобы отсортировать вывод команды ls в алфавитном порядке по расширениям файлов, используйте -X опцию командной строки.
ls -X
Вот как работает вышеуказанная команда:

Как видно на скриншоте выше, среди файлов с именами, содержащими расширение, ‘echo.c» указан первым, а «byzanz_window.py» — в конце.
5. Как отсортировать файлы по времени изменения
Если вы хотите быстро узнать, какие файлы или каталоги были изменены недавно, то вы можете использовать опцию команды ls -t .
ls -t
Опция командной строки -t отображает самые новые записи первыми.
6. Как рекурсивно вывести список подкаталогов
При желании можно настроить команду ls так, чтобы она отображала также содержимое подкаталогов. Это можно сделать с помощью -R опции командной строки.
ls -R
На следующем скриншоте показана работа вышеуказанной команды:

7. Как вывести имена файлов вместе с номерами инодов
Команда ls также позволяет вывести имена файлов/каталогов вместе с их номерами инодов. Для доступа к этой функции инструмент предоставляет -i опцию командной строки.
ls -i
Вот как работает вышеуказанная команда:

Как видно на скриншоте выше, цифры слева — это номера инодов, а имена справа — соответствующие имена файлов/каталогов.
8. Как отобразить подробную информацию о файлах и каталогах
Команда ls также может выводить подробную информацию о файлах и каталогах. Чтобы включить этот формат вывода (также известный как формат длинного списка), необходимо использовать опцию командной строки -l .

Как видно на скриншоте выше, вывод разделен на 8 столбцов. Вот что означают эти столбцы:
- Первая колонка показывает права доступа к файлу
- Вторая колонка показывает количество жестких ссылок
- Третья и четвертая — имена владельца и группы
- Пятая — размер файла
- Шестая и седьмая — дата и время последнего изменения
- Последняя — имя файла.
9. Как отобразить информацию об авторе
Вы также можете попросить команду ls отобразить автора каждого файла при выводе списка каталога в длинном формате. Для этого необходимо совместить —author с -l.
ls -l —author

Как видно на скриншоте выше, вновь добавленная пятая колонка предназначена для автора.
Примечание: На официальном сайте GNU говорится: «В GNU/Hurd авторы файлов могут отличаться от их владельцев, но в других операционных системах эти два понятия совпадают».
10. Как выводить экранирующие коды в стиле C для неграфических символов (таких как символы новой строки и пробелы)
Предположим, что текущий каталог содержит файл с именем, в котором есть символ новой строки. Если вы попытаетесь вывести список содержимого этого каталога, то в названии этого конкретного файла будет отображаться вопросительный знак (?), обозначающий непечатаемый символ.

Однако команда ls предоставляет опцию, которая при использовании выводит экранирующие символы в стиле C для непечатных символов. Речь идет об опции -b.

Как видно на скриншоте выше, опция -b приводит к тому, что ls выводит ‘\n’ вместо символа новой строки. Аналогично, пробелы в этом режиме отображаются как ‘\[space]’.
11. Как вывести размер файла в единицах измерения, отличных от байтов
Если вы хотите узнать размер файла, вам нужно использовать опцию -l (которая включает формат подробного списка), о которой мы говорили в пункте 3 выше. По умолчанию размер отображается в байтах. Однако могут возникнуть ситуации, когда вам понадобится указать размер в килобайтах или мегабайтах.
Команда ls имеет опцию, позволяющую указать единицу измерения, в которой вы хотите отображать размер файла. Речь идет об опции —block-size. Например, если вы хотите, чтобы размер отображался в килобайтах, вы можете выполнить следующую команду:
ls -l —block-size=k [file-name]

Имейте в виду, что значение размера, полученное с помощью -l , является фактическим размером файла или объемом данных, которые он содержит. Если же вам нужно узнать размер файла в файловой системе или выделенный размер (да, они могут различаться), то вам нужно использовать -s .
ls -s —block-size=k [file-name]

Для получения дополнительной информации о разнице между размером файла, выводимым -l и -s , смотрите здесь.
12. Как заставить ls выводить только имена файлов и размеры файлов
Если вы хотите, чтобы вывод команды ls содержал только имена файлов/каталогов и их размеры, то вы можете сделать это, используя опцию -h в сочетании с опцией командной строки -l/-s.
Например:
ls -s -h

13. Как заставить ls не выводить файлы резервных копий в выводе
В Linux файлы резервных копий обозначаются именами, заканчивающимися тильдой (~). Команда ls предоставляет опцию (-B), с помощью которой можно попросить утилиту не выводить файлы резервных копий в выводе, если это необходимо.
Например, на следующем скриншоте показаны две команды ls. Первая выводит имя файла резервной копии, а вторая (которая использует опцию -B ) — нет.

14. Как заставить ls конкретно указывать тип файла в выводе
По умолчанию вывод команды ls имеет цветовую кодировку, где разные цвета обозначают разные типы файлов. Однако, если вы хотите, вы также можете заставить инструмент добавлять индикатор (для этой цели) к записям в выводе. Доступ к этой функции можно получить с помощью опции -F .
Вот пример:

Обратите внимание на дополнительный символ «/» в пример каталога, и «*» с test исполняемого файла. Вот полный список индикаторов и информация о том, что они обозначают:
- @ обозначает символическую ссылку
- * обозначает исполняемый файл
- = обозначает файл сокета
- | обозначает именованный канал
- > обозначает дверь
- / обозначает каталог
15. Как изменить формат вывода команды ls
При желании вы также можете изменить формат вывода команды ls. Опция —format позволяет это сделать. Для этой опции необходимо передать значение, указывающее на тип желаемого формата вывода. Доступны следующие значения: ‘verbose’ или ‘long’, ‘commas’, ‘horizontal’ или ‘across’, ‘vertical’ и ‘single-column’.
Например, используйте —format=commas , если хотите получить вывод, разделенный запятыми:

Аналогично, используйте —format=single-column , если хотите, чтобы вывод отображался в одной колонке:

16. Как заставить ls скрыть файлы определенного типа
При желании вы также можете заставить команду ls скрыть файлы определенного типа в выводе. Опция —hide (которому необходимо передать шаблон оболочки) позволяет сделать это. Например, если вы не хотите, чтобы утилита отображала файлы .txt в выводе, вам следует выполнить следующую команду:
ls —hide=*.txt
На следующем скриншоте показан вывод как без, так и с опцией —hide .

Заключение
Хотя ls является очень простой командой, эффективность её использования зависит от знания пользователем опций командной строки, которые предоставляет этот инструмент. Попробуйте опции, которые мы обсудили в этом уроке, а в случае возникновения сомнений или вопросов обратитесь к странице man.