Команда ls в Linux — полный справочник

О чём этот материал
Кратко: здесь вы найдёте синтаксис, ключевые и продвинутые флаги, типичные сценарии использования, набор практических примеров и чеклисты для ролей (администратор, разработчик, пользователь). Подойдёт как для новичков, так и для тех, кто хочет ускорить работу в терминале.
Важно: примеры основаны на GNU coreutils ls и могут отличаться в других реализациях (например, BusyBox или BSD).
Основная команда и синтаксис
Синтаксис:
ls [опции] [каталог]Простейшее использование — вывести содержимое текущего каталога:
lsВы можете указать один или несколько каталогов:
ls /boot /usrЧастые базовые примеры
- Список корневого каталога:
ls /- Список родительского каталога:
ls ..- Список домашнего каталога:
ls ~- Показывать только каталоги (флаг -d):
ls -d /home/*/- Включить замаскированные (скрытые) файлы (флаг -a):
ls -a- Рекурсивный вывод с подкаталогами (флаг -R):
ls -R- Добавить различающие символы (“ /“ для каталогов, “*” для исполняемых) (флаг -F):
ls -F- Перенаправить вывод в файл:
ls > ls-output.txt
cat ls-output.txtВывод с подробностями и размер в удобном виде
- Полный (long) формат — права, владелец, группа, размер, дата, имя:
ls -lПример вывода:
total 2944
drwxr-xr-x 3 sharmadeepesh sharmadeepesh 4096 8 фев 13:53 pkg
drwxr-xr-x 4 sharmadeepesh sharmadeepesh 4096 8 фев 13:52 src
-rw-r--r-- 1 sharmadeepesh sharmadeepesh 2998674 8 фев 13:53 yay-git-10.1.2.r0.g7d849a8-2-x86_64.pkg.tar.zst- Читаемые размеры (human-readable):
ls -lh- Флаг -s показывает размер в блоках, а не в байтах; для удобства используйте -lh вместе с -l.
Сортировка и фильтрация
- Сортировать по времени модификации (свежие вверху):
ls -t- Сортировать по размеру (крупные вверху):
ls -S- Добавить r для обратного порядка:
ls -Sr- Фильтрация через grep (пример — все имена, где встречается буква l):
ls | grep "^l"- Поиск расширений:
ls | grep "\\.txt$"Замечание: для сложных поисков лучше использовать find (см. раздел «Альтернативы»).
Частые флаги и короткая справка (cheat sheet)
| Флаг | Описание |
|---|---|
| -l | Подробный вывод (права, владелец, размер, дата) |
| -h | Читаемые размеры (сочетается с -l) |
| -a | Показать скрытые файлы (начинаются с .) |
| -A | Показать почти всё, кроме . и .. |
| -R | Рекурсивно показать подкаталоги |
| -S | Сортировать по размеру |
| -t | Сортировать по времени |
| -r | Обратный порядок |
| -F | Добавлять метки типов (/, @, *) |
| –color | Подсветка по типам файлов (GNU) |
Важно: опции GNU ls поддерживают дополнительные ключи вроде –group-directories-first и –time-style, но они не стандартизированы во всех реализациях.
Разбор прав доступа и типов файлов
В первом столбце длинного вывода видна строка вроде:
drwxr-xr-xСтруктура: первый символ — тип, следующие девять символов — права для владельца, группы и остальных.
Типы файлов (символы):
- обычный файл
- d каталог
- l символическая ссылка
- b блочный файл
- c символьный (символьное устройство)
- p FIFO (именованный канал)
- s сокет
Права: r = чтение, w = запись, x = выполнение.
Пример: drwxr-xr-x означает каталог, владелец — rwx, группа — r-x, остальные — r-x.
Практические сценарии и приёмы
- Найти 10 самых больших файлов в текущем каталоге (используя ls):
ls -Sh | head -n 10- Показать файлы в каталоге, обновлённые за последние N дней (лучше find, но быстрый пример):
ls -lt | head -n 20- Список только директорий (вместо -d, фильтрация через grep):
ls -l | grep '^d'- Сохранить список рекурсивно в файл:
ls -R > tree-like-list.txt- Показать группы файлов и каталоги первыми (GNU):
ls --group-directories-first -lhAliases и персонализация
Рекомендуемая настройка в ~/.bashrc или ~/.zshrc:
alias ls='ls --color=auto'
alias ll='ls -lh'
alias la='ls -lha'Это даёт цветовой вывод и удобные комбинации.
Альтернативные инструменты и когда ls не подходит
- find — поиск по критериям (время, размер, тип) и выполнение действий на найденных файлах. Лучше для рекурсивного поиска с фильтрацией.
- tree — древовидный вывод с размерами (удобно для визуализации структуры).
- du — суммарные размеры каталогов.
- stat — подробные метаданные для отдельного файла.
Когда ls не подходит: нужно точечно искать по содержимому файлов, применять рекурсивные фильтры по времени создания/изменения или выполнять действия над найденными файлами — тогда find и xargs/parallel лучше.
Советы по совместимости и миграции
- GNU ls (обычно в Linux) поддерживает расширенные опции (–color, –time-style). На BSD (macOS) некоторые опции отличаются: используйте –help или man ls.
- На ограниченных системах (встроенные устройства) ls может быть из BusyBox — функциональность урезана.
- Проверяйте опции: ls –version (если доступно) подскажет реализацию.
Решение типовых задач (playbook)
- Просмотреть скрытые файлы и каталоги с читаемыми размерами:
ls -lha- Быстро найти 5 крупнейших файлов в каталоге:
ls -Sh | head -n 5- Сохранить список всех файлов в каталоге проекта рекурсивно и отправить по электронной почте:
ls -R > files-list.txt
# затем вложить files-list.txt в письмо- Показать только каталоги в текущем каталоге:
ls -d */Роль-ориентированные чеклисты
Администратор:
- Использовать ll или ls -lh для аудита
- Применять –group-directories-first для обзора структуры
- Проверять права через ls -l
Разработчик:
- Настроить alias ll
- Часто использовать ls -a для скрытых конфигов
- Сочетать ls с grep для быстрого поиска файлов по маске
Пользователь:
- Узнать, где хранится домашняя папка ~
- Использовать ls -lh для понимания, что занимает место
- Перенаправлять вывод в файл для отчётов
Типичные ошибки и подводные камни
- Ожидать, что ls ищет рекурсивно по умолчанию — нет, нужен -R или find.
- Думать, что сортировка по времени учитывает время создания — обычно это время последней модификации; можно менять политику с –time=birth (если поддерживается).
- Путать -a и -A: -a показывает . и .. тоже; -A нет.
Важно: вывод ls не является детальным инвентарём для автоматизированной обработки (особенно при пробелах в именах). Для скриптов предпочтительнее использовать find и нуль-терминированный вывод (-print0) вместе с xargs -0.
Безопасность и права
ls сам по себе не меняет права, но показывает их. Не используйте sudo для ls без необходимости; лучше проверяйте права и владельцев, чтобы понять, кто может читать/писать.
Минимальная методология для аудита каталога
- ll или ls -lh для общего обзора
- ls -la для скрытых файлов
- ls -lt для недавно изменённых
- ls -Sh для крупных файлов
- При необходимости — find для точного поиска и du для суммарных размеров
Быстрые примеры (шпаргалка)
- Показать только имена файлов в одной колонке:
ls -1- Подсветка и долгий формат:
ls --color=auto -lh- Сортировать по расширению:
ls -X- Натуральная версия сортировки (полезно для версий в именах):
ls -vУдобная диаграмма выбора (Mermaid)
flowchart TD
A[Нужно посмотреть файлы?] --> B{Только текущий каталог?}
B -- Да --> C[ls]
B -- Нет --> D{Рекурсивно?}
D -- Да --> E[ls -R]
D -- Нет --> F[ls <путь>]
C --> G{Нужны подробности?}
G -- Да --> H[ls -lh]
G -- Нет --> I[ls]Короткий глоссарий
- каталог — папка в файловой системе
- скрытые файлы — имена, начинающиеся с точки (.)
- long-формат — подробный вывод ls -l
Критерии приёмки
- Команды выводят ожидаемый набор файлов для указанного каталога
- Параметры -l и -h дают читаемые размеры
- Перенаправление > сохраняет полный список в файл
Заключение
Команда ls — простая, но гибкая. Для повседневной работы достаточно знать примерно 6–8 ключевых флагов и пару алиасов. Для сложных поисков и массовых операций комбинируйте ls с find, xargs и другими утилитами.
Короткие рекомендации:
- Настройте alias (ll, la)
- Используйте -lh и -a чаще всего
- Для поиска и массовых действий переходите на find
Спасибо за чтение. Если нужно, подготовлю краткое руководство с командами под вашу роль или окружение.
Похожие материалы
Как сделать рождественскую открытку в Canva
Как увидеть и выйти из списков X
PowerToys: Mouse Without Borders и Peek в Windows 11
Luminar Share: беспроводная передача фото
Upscale AI в Luminar Neo — увеличить фото