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 →
