Если ты хоть раз открывал терминал на Linux, то наверняка сталкивался с командой ls
. Это, казалось бы, простейшая команда для просмотра содержимого каталогов. Но на самом деле, ls
— это настоящий швейцарский нож для работы с файлами и папками. В этом посте разберёмся, зачем вообще знать все её фишки, как её ставить (да, такое бывает!), и как использовать по максимуму.
Зачем вообще заморачиваться с ls?
На первый взгляд, ls
просто выводит список файлов. Но если ты работаешь с большим количеством файлов, любишь автоматизировать или просто хочешь выглядеть как терминальный ниндзя, то без продвинутых опций никуда. ls
может показывать скрытые файлы, сортировать, раскрашивать, выводить подробную инфу, фильтровать по времени, размеру, и ещё кучу всего. Это must-have для любого админа, девопса, разработчика, да и просто любителя консоли.
Что требуется
- ОС: Любой дистрибутив Linux (Debian, Ubuntu, CentOS, Fedora, Arch и т.д.), также работает на macOS и некоторых BSD.
- Железо: Любое, что тянет Linux. Даже Raspberry Pi.
- Права: Обычный пользователь, root не нужен (кроме случаев, когда смотришь закрытые для чтения каталоги).
Установка — пошаговая инструкция
Обычно ls
уже есть в системе, потому что это часть пакета coreutils
. Но вдруг ты на каком-то ультра-минимальном контейнере или Alpine Linux — тогда вот как докинуть:
- Debian/Ubuntu:
sudo apt update sudo apt install coreutils
- CentOS/Fedora:
sudo dnf install coreutils
- Alpine:
sudo apk add coreutils
В Alpine по умолчанию стоит
busybox ls
, он попроще. Ставимcoreutils
для всех фич. - Проверить версию:
ls --version
Должно вывести что-то вроде
ls (GNU coreutils) 9.1
.
Если ты на macOS, ls
встроен, но там BSD-версия, опций чуть меньше.
Использование: полный список команд и вариантов
Вот где начинается веселье. ls
— это не просто ls
. Вот самые полезные опции и их комбинации:
ls
— просто список файлов в текущей папке.ls -l
— подробный (long) формат: права, владелец, размер, дата, имя.ls -a
— показать все файлы, включая скрытые (.
и..
и файлы, начинающиеся с точки).ls -la
илиls -al
— подробный + все (must-have для любого терминального юзера).ls -lh
— human-readable размеры (К, М, Г вместо байтов).ls -lt
— сортировка по времени изменения (сначала свежие).ls -ltr
— то же, но в обратном порядке (старые внизу).ls -R
— рекурсивно по всем подпапкам.ls -S
— сортировать по размеру (сначала самые большие).ls --color=auto
— цветной вывод (на большинстве Linux стоит по умолчанию).ls --help
— полный список опций (там реально много всего).ls -d */
— только папки в текущем каталоге.ls -1
— вывод по одному файлу в строке (удобно для скриптов).
Полный список опций всегда можно посмотреть по официальной доке GNU coreutils.
Кастомизация через алиасы
alias ll='ls -lah --color=auto'
alias l='ls -CF'
Добавь это в свой ~/.bashrc
или ~/.zshrc
— и будет счастье.
Ошибки и как делать не надо
- Не пиши
ls | grep "pattern"
для поиска файлов — лучше юзатьfind
илиls *pattern*
.grep
не видит скрытые файлы без-a
. - Не забывай про кавычки, если имена с пробелами:
ls "My Folder"
- Не используй
ls
для подсчёта файлов:ls | wc -l
— это криво, лучшеfind . -maxdepth 1 -type f | wc -l
- Не надейся на одинаковое поведение
ls
везде — на macOS и BSD опции могут отличаться.
Пример реального использования
Допустим, ты деплоишь проект и тебе нужно быстро посмотреть, какие файлы были изменены за последние сутки:
ls -lt --time-style=long-iso | head -n 20
Или ты хочешь узнать, сколько места занимают папки в каталоге:
ls -lhS */
А если автоматизируешь деплой и выводишь список файлов в скрипте:
for file in $(ls -1 *.log); do
echo "Обрабатываю $file"
done
(Хотя для скриптов лучше find
или for file in *.log
, но иногда хочется именно ls
).
Заключение
ls
— это не просто древняя команда, а реально мощный инструмент. Научись использовать его фичи — и ты ускоришь свою работу в терминале в разы. Не забывай про алиасы, читай официальную документацию, и не бойся экспериментировать. Терминал — это не страшно, а круто!
Ваш отзыв