ls — содержимое каталога
Команда ls показывает файлы и каталоги: права, владельца, размер и время изменения, в том числе скрытые.
Шпаргалка
11 команд Версия для печати-
lsсодержимое текущего каталога -
ls /etcсодержимое другого каталога -
ls -lподробно: права, владелец, размер, время -
ls -laподробно и со скрытыми (.bashrc и т. п.) -
ls -lhразмеры в K, M, G -
ls -ltновые сверху -
ls -ltrновые внизу — удобно для логов -
ls -lSкрупные сверху -
ls -ld /var/logсам каталог, а не его содержимое -
ls -R projectрекурсивно, с подкаталогами -
ls *.confтолько подходящие под шаблон
Обзор
ls (list) печатает имена файлов и каталогов. Без аргументов — текущий каталог,
с аргументом — указанный путь или файл. Порядок по умолчанию — по алфавиту.
Длинный формат ls -l — главный способ посмотреть права и владельца:
Колонки слева направо: тип и права (- файл, d каталог, l
ссылка), число жёстких ссылок, владелец, группа, размер в байтах, время изменения,
имя. У файлов старше полугода вместо часов стоит год.
Имена с точкой в начале (.bashrc, .ssh) — скрытые: без -a их не видно.
-a добавляет ещё . (сам каталог) и .. (родитель), -A — всё, кроме них.
Ключи
14Короткие ключи склеиваются: ls -l -a -h и ls -lah — одно и то же. Полный список —
man ls.
| Ключ | Что делает | Пример |
|---|---|---|
-l |
Длинный формат — тип, права, ссылки, владелец, группа, размер, время, имя. | ls -l /etc |
-a |
Показать скрытые имена (с точкой в начале), включая . и .. | ls -la |
-h |
С -l печатать размеры в K, M, G вместо байтов. | ls -lh |
-t |
Сортировать по времени изменения, новые сверху. | ls -lt |
-A |
Как -a, но без . и .. | ls -A |
-r |
Обратить порядок сортировки. | ls -ltr |
-S |
Сортировать по размеру, крупные сверху. | ls -lS |
-d |
Показать сам каталог, а не его содержимое. | ls -ld /var/log |
-R |
Обойти подкаталоги рекурсивно. | ls -R project |
-F |
Пометить тип значком — / каталог, * исполняемый, @ ссылка. | ls -F |
-i |
Печатать номер inode каждого файла. | ls -i |
-n |
Как -l, но владелец и группа — числами UID и GID. | ls -n /home |
-1 |
По одному имени в строке. | ls -1 |
--group-directories-first |
Каталоги перед файлами. | ls -l --group-directories-first |
Ничего не найдено. Попробуй запрос короче.
Рецепты
5Посмотреть права на каталог, а не на файлы в нём
Без -d команда покажет содержимое каталога, а права самого каталога останутся
за кадром.
Только каталоги или только файлы
Числовые UID и GID вместо имён
Помогает, когда файл остался от удалённого пользователя: вместо имени там и так будет число.
Короткие псевдонимы Ubuntu
В ~/.bashrc Ubuntu уже есть alias ll='ls -alF', alias la='ls -A' и
alias l='ls -CF'. Что стоит за именем, покажет type ll.
Неполадки
6ls: cannot access 'x': No such file or directory
Такого пути нет относительно текущего каталога. Проверь pwd, регистр букв
(Notes и notes — разные имена) и допиши имя клавишей Tab — оболочка подставит
только существующий путь. Подробнее о путях — paths.
ls: cannot open directory: Permission denied
Чтобы прочитать список, нужно право r на каталог, чтобы войти — x. Посмотри
права самого каталога: ls -ld /root. Системные каталоги читай через sudo ls.
Файла нет в списке, хотя он точно есть
Имя начинается с точки — добавь -a. Или файл лежит глубже: ls -R либо
find (find . -name 'имя*').
У каталога размер 4096, а внутри гигабайты
ls -l показывает размер записи каталога, а не его содержимого. Объём каталога
целиком считает du -sh каталог — см. disk-usage.
Имя напечатано в кавычках: 'my file'
Так ls показывает имена с пробелами и спецсимволами, чтобы их можно было
скопировать в команду. В самом имени кавычек нет. В команде такое имя бери в
кавычки или допиши Tab.
Вывод ls разбирают в скрипте, и он ломается на пробелах
Вывод ls предназначен человеку. В сценариях перебирай файлы шаблоном оболочки
(for f in *.log) или find с -print0.
См. также
- files-basics — обзор базовых команд с файлами: что за чем идёт.
- cd — перейти в каталог, который показал
ls. - paths — абсолютные и относительные пути,
~,.и... - permissions — как читать колонку прав
rwxr-xr-x. - stat — все времена и права одного файла подробно.
- disk-usage — сколько места занимает каталог целиком.
- find — поиск файлов по всему дереву.
Есть неточность? Сообщить об ошибке в статье