ls

  • -1, --format=single-column – выдавать один файл на строку. Эта опция включается по умолчанию, если стандартный вывод не является терминалом.
  • -a, --all – выдавать все файлы в каталогах, включая скрытые файлы, начинающиеся с точки.
  • -b, --escape, --quoting-style=escape – Заменять неграфические символы в именах файлов, используя алфавитно-цифровые последовательности, а также последовательности вида -Q, за исключением того, что имена файлов не заключаются в двойные кавычки.
  • -c, --time=ctime, --time=status – сортировать содержимое каталога в соответствии с временем изменения состояния файла (поле ctime в inode). Если с помощью опции -l задан длинный формат, то выдавать время изменения состояния файла вместо времени его модификации.
  • -d, --directory – выдавать имена каталогов, как будто они обычные файлы, вместо того, чтобы показывать их содержимое.
  • -f – не сортировать содержимое каталога; выдавать файлы в том порядке, в котором они записаны на диск. Эта опция также разрешает -a и -U и запрещает -l, –color, -s, и -t, если они были заданы перед -f.
  • -g – игнорируется; нужна для совместимости с Unix.
  • -h, --human-readable – добавлять к каждому размеру файла букву размера, например, M для двоичных мегабайт (мебибайт). (Новое в fileutils-4.0.)
  • -i, --inode – выдавать номер inode (также называемый серийным номером файла и номером индекса) каждого файла, слева от его имени. (Этот номер однозначно идентифицирует каждый файл в каждой файловой системе)
  • -k, --kilobytes – если выдаются размеры файлов, то выдавать их в килобайтах.
  • -l, --format=long, --format=verbose – в дополнении к имени каждого файла, выводятся тип файла, права доступа к файлу, количество ссылок на файл, имя владельца, имя группы, размер файла в байтах и временной штамп (время последней модификации файла, если не задано другое). Для файлов с временем больше чем 6 месяцев назад или больше, чем 1 час в будущее, временной штамп содержит год вместо времени дня.


Каждый каталог со списком содержимого предваряется строкой total blocks, где blocks — общее дисковое пространство, используемое всеми файлами в данном каталоге. По умолчанию размер блока составляет 1024 байта; если установлена переменная окружения POSIXLY_CORRECT, то используется размер блока 512 байт (если не задана опция -k). blocks считает каждую жёсткую ссылку отдельно; задать по-другому через аргументы невозможно. Права доступа отображаются в практически обычном символьном виде, но ls комбинирует несколько битов в третий символ каждого набора прав доступа:

  • s – setuid или setgid бит установлены вместе с соответствующим битом прав на выполнение.
  • S – setuid или setgid бит установлены, но соответствующий бит прав на выполнение не установлен.
  • t – sticky-бит установлен вместе с битом прав на выполнение остальными.
  • T – sticky-бит установлен, но бит прав на выполнение остальными нет.
  • x – бит прав на выполнение установлен, и не выполняется ни одно из вышеуказанных условий.
  • - – во всех остальных случаях.


  • -m, --format=commas — выдавать список файлов в строчку с максимально возможным количеством имён файлов на строку, разделяя имена запятой и пробелом.
  • -n, --numeric-uid-gid — выдавать числовые UID и GID вместо имён владельца и группы.
  • -o — применять длинный формат, но не показывать информацию о группе. Данная опция эквивалентна –format=long –no-group и предоставляется для совместимости с другими версиями ls.
  • -p, --file-type, --indicator-style=file-type — добавлять символ, показывающий тип файла, к каждому имени файла. Данная опция похожа на -F, за исключением того, что исполняемые файлы не помечаются. (Фактически в fileutils-4.0 опция –file- type эквивалентна –classify.)
  • -q, --hide-control-chars — выдавать знаки вопроса вместо неграфических символов в имени файла. Эта опция включена по умолчанию.
  • -r, --reverse — сортировать содержимое каталога в обратном порядке.
  • -s, --size — выдавать размер каждого файла в блоках по 1024 байта слева от имени файла. Если установлена переменная окружения POSIXLY_COR- RECT, то применяется размер блока 512, если не задана опция -k.
  • -t, --sort=time — сортировать по времени последней модификации (поле mtime в inode) вместо того, чтобы производить сортировку по алфавиту. Самые свежие файлы будут отображаться первыми.
  • -u, --time=atime, --time=access, --time=use — сортировать по времени последнего доступа к файлу, вместо времени последней модификации (поле `atime' в inode). Если задан длинный формат вывода, выдавать время последнего доступа вместо времени последней модификации.
  • -v — производить сортировку в соответствии с номером версии файлов. При этом учитывается, что имена файлов часто содержат номера версий или порядковые номера. Стандартные функции сортировки обычно не обеспечивают сортировку, которую мог бы ожидать человек, так как сортировка производится на основе посимвольного сравнения. Сортировка по версиям решает эту проблему и особенно полезна, когда производится просмотр каталогов, содержащих много файлов, у которых в имени есть номер версии. Например:
ls -1              ls -1v
foo.zml-1.gz       foo.zml-1.gz
foo.zml-100.gz     foo.zml-12.gz
foo.zml-12.gz      foo.zml-25.gz
foo.zml-25.gz      foo.zml-100.gz

Цифровые части с лидирующими нулями определяются как более маленькие:

ls -1              ls -1v
abc-1.007.tgz      abc-1.007.tgz
abc-1.012b.tgz     abc-1.01a.tgz
abc-1.01a.tgz      abc-1.012b.tgz

--quoting-style=word – используйте стиль word для выбора режима квотинга имён файлов. Стиль word может принимать следующие значения:

  • literal – вывод имён файлов как есть. Это поведение ls по умолчанию.
  • shell – заключает имена файлов в одиночные кавычки для shell, если они содержат метасимволы или могут привести к неоднозначной выдаче.
  • shell-always – заключает имена файлов в одиночные кавычки для shell, даже если этого не требуется.
  • c – заключает имена файлов в двойные кавычки, как в языке C; это равносильно опции -Q.
  • escape – как и для c, за исключением того, что имя не заключается в двойные кавычки; эквивалентно опции -b.

Значение по умолчанию для данной опции может быть задано в переменной окружения QUOTING_STYLE

Перечисление содержимого всех подкаталогов.

ls * /

Вывод только существующих директорий

ls -ld */

Вывод всех файлов с расширением .htm, .php или .cgi.

ls *. {htm, php, cgi}

Список файлов, отсортированных по времени последнего изменения в обратном порядке (последние измененные файлы - последними).

ls -ltr

Только файлы, начинающиеся с гласной (a, e, i, o или u).

ls [aeiou] *

Подавление любого сообщения об ошибке, если команда ls не находит файл

ls myfile.txt 2> /dev/null

Вывод без указания группы и владельца

ls -go

Смотрим на файлы, с определенной датой

ls --full-time | grep '2021-12-02'

Вывод ID пользователей вместо имени:

ls --numeric-uid-gid

Сначала, с помощью команды shopt включаем поддержку nocaseglob:

shopt -s nocaseglob

Теперь, можно игнорировать различия регистра в именах файлов:

ls *pattern*
ls -l *pattern*
ls -l *service*.pdf

Не забываем деактивировать nocaseglob:

shopt -u nocaseglob
# Файлы и директории
ls -ld .?*

Вывод отсортированный по размеру

ls -laSh
 
# эквивалентно команде выше
ls -lah --sort=size

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

Опция Длинная опция Описание
-U --sort=none без сортировки
-X --sort=extension сортировка по расширению файла
-S --sort=size сортировка по размеру
-t --sort=time сортировка по времени изменения
-v выполнять сортировку по версиям файлов
-r выполнять сортировку в обратном порядке
  • ls.txt
  • Последнее изменение: 2022/11/21 09:17
  • admin