Открыть сервис

Ls: команда просмотра содержимого каталога

Ls (от англ. list) — утилита командной строки в операционных системах семейства Unix и Unix-подобных, предназначенная для вывода списка файлов и каталогов. Является одной из базовых команд, входящих в стандарт POSIX, и широко используется в повседневной работе системных администраторов и разработчиков.

История

Команда ls появилась в первых версиях операционной системы Unix, разработанной в Bell Labs в конце 1960-х — начале 1970-х годов. Изначально она была реализована Кеном Томпсоном и Деннисом Ритчи. В ранних версиях Unix команда выводила список файлов в простом формате, по одному имени в строке. С развитием системы и появлением различных диалектов Unix (BSD, System V) функциональность ls расширялась: добавлялись опции для сортировки, вывода метаданных, рекурсивного просмотра.

В современных системах, таких как Linux и macOS, используется версия ls, разработанная в рамках проекта GNU Coreutils (для Linux) и BSD-проектов. Несмотря на появление альтернативных инструментов (например, exa, eza), классическая ls остаётся стандартом де-факто.

Синтаксис и основные опции

Общий синтаксис команды выглядит следующим образом:

`` ls [опции] [файл или каталог] ``

Если аргумент не указан, выводится содержимое текущего рабочего каталога. При указании пути к файлу команда выводит информацию о самом файле.

Ключевые опции можно разделить на несколько функциональных групп.

Формат вывода

  • -l (long format) — выводит подробную информацию: тип файла, права доступа, количество жёстких ссылок, владельца, группу, размер в байтах и время последней модификации.
  • -h (human-readable) — используется совместно с -l для отображения размеров в удобном виде (КБ, МБ, ГБ).
  • -1 — выводит по одному имени в строке без дополнительной информации.
  • -C — выводит список в несколько колонок (поведение по умолчанию при выводе на терминал).

Сортировка и фильтрация

  • -a (all) — показывает все файлы, включая скрытые (начинающиеся с точки).
  • -A — аналогично -a, но не показывает текущий (.) и родительский (..) каталоги.
  • -t — сортирует по времени последнего изменения (сначала новые).
  • -S — сортирует по размеру файла (сначала большие).
  • -r (reverse) — обратный порядок сортировки.
  • -R (recursive) — рекурсивно выводит содержимое подкаталогов.

Дополнительные возможности

  • -d — выводит информацию о самом каталоге, а не о его содержимом.
  • -i — показывает номер индексного дескриптора (inode) для каждого файла.
  • -F — добавляет к именам символы-индикаторы типа (/ для каталогов, * для исполняемых файлов, @ для символических ссылок).
  • --color — включает цветовое выделение в зависимости от типа файла (часто включено по умолчанию в дистрибутивах Linux).

Интерпретация длинного формата

Вывод команды ls -l является стандартным способом получения метаданных о файлах. Формат строки выглядит следующим образом:

`` -rw-r--r-- 1 user group 1024 Jan 12 10:30 filename ``

Первая позиция указывает тип файла: - (обычный файл), d (каталог), l (символическая ссылка), c (символьное устройство), b (блочное устройство). Далее следуют девять символов прав доступа, разделённых на три группы по три: для владельца, группы и остальных пользователей. Каждая группа содержит символы r (чтение), w (запись), x (исполнение). Дефис означает отсутствие соответствующего права.

После прав указывается число жёстких ссылок, имя владельца, имя группы, размер файла в байтах и дата последней модификации. Для вывода времени в более точном формате используется опция --full-time.

Поведение со скрытыми файлами

В Unix-системах файлы, имена которых начинаются с точки (например, .bashrc, .gitignore), считаются скрытыми. По умолчанию ls их не отображает. Для просмотра таких файлов используется опция -a или -A. Данное поведение отличает Unix от Windows, где скрытость файла определяется атрибутом файловой системы.

Использование в сценариях

Команда ls часто применяется в shell-скриптах для проверки существования файлов, подсчёта количества элементов в каталоге или передачи списка файлов другим утилитам. Однако для автоматизации рекомендуется использовать другие инструменты, такие как find, stat или glob-подстановку оболочки, поскольку вывод ls может содержать нежелательные символы (например, при наличии пробелов в именах файлов) и зависит от настроек локали.

Аналоги в других системах

В операционной системе Windows для просмотра содержимого каталога используется команда dir как в командной строке cmd, так и в PowerShell. В PowerShell также доступен алиас ls, который ссылается на командлет Get-ChildItem, предоставляющий более широкие возможности по работе с объектами файловой системы.

См. также

К командам, связанным с управлением файлами в Unix, относятся cd (смена каталога), pwd (показ текущего каталога), cp (копирование), mv (перемещение), rm (удаление), chmod (изменение прав доступа), stat (подробная информация о файле).

Источники

  • Стивенс У. Р., Раго С. А. «UNIX. Профессиональное программирование», 3-е издание.
  • Документация GNU Coreutils (man ls).
  • Стандарт POSIX.1-2017, описание утилиты ls.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →