Команда ls в Linux
Linux ls(Полное английское написание: список содержимого каталога) Команда используется для отображения содержимого указанного рабочего каталога (вывод списка файлов и подкаталогов, содержащихся в текущем рабочем каталоге).
Синтаксис
ls [-alrtAFR] [name...]
Параметры:
| Параметры | Описание |
|---|---|
-aили--all | Отобразить все файлы (включая те, что начинаются с.точки, т.е. скрытые файлы). |
-Aили--almost-all | Отобразить все файлы, кроме.и..записей . и .. (включая скрытые файлы). |
-l | Выводить список файлов в длинном формате (подробная информация) (права доступа, владелец, размер, время изменения и т.д.). |
-hили--human-readable | и-lПри совместном использовании отображать размеры файлов в удобочитаемом формате (например, KB, MB). |
-t | Сортировать по времени изменения (сначала новые). |
-rили--reverse | Обратная сортировка (используется с-t、-Sи т.д.). |
-S | Сортировать по размеру файла (сначала самые большие файлы). |
-Rили--recursive | Рекурсивно выводить содержимое подкаталогов. |
-Fили--classify | Добавлять индикатор к именам файлов (например,/обозначающий каталог,*обозначающий исполняемый файл). |
--color | Цветной вывод (обычно включён по умолчанию,--color=auto)。 |
-iили--inode | Показать номер inode файла. |
-nили--numeric-uid-gid | Показывать UID и GID в числовом виде (вместо имён пользователя и группы). |
-dили--directory | Показывать только сам каталог, а не его содержимое (часто используется с-l)。 |
-1 | Выводить только один файл в строке (автоматически включается, когда ширины терминала недостаточно). |
-m | Выводить файлы в виде списка, разделённого запятыми. |
-Qили--quote-name | Заключать имена файлов в кавычки (полезно для имён файлов, содержащих пробелы). |
--group-directories-first | Сначала показать каталоги, затем файлы. |
--time-style=<格式> | Настроить формат отображения времени (например,+%Y-%m-%d)。 |
Примеры
ls -a # Показать все файлы и каталоги в текущем каталоге, включая скрытые файлы
ls -lh # Показать размеры файлов и каталогов в текущем каталоге в удобочитаемом виде
ls -t # Показать файлы и каталоги в текущем каталоге, отсортированные по времени изменения
ls -R # Рекурсивно вывести все файлы и подкаталоги в текущем каталоге
ls -l /etc/passwd # Показать подробную информацию о файле /etc/passwd
Примеры
Вывести список всех файлов в текущем каталоге подробно (включая скрытые файлы):
ls -la
Отсортировать файлы по размеру в обратном порядке (сначала самые большие файлы):
ls -lShr
Рекурсивно вывести содержимое каталога /var/log и отобразить размеры файлов в удобочитаемом виде:
ls -lhR /var/log
Показать только подробную информацию о каталоге (не рекурсивно):
ls -ld /etc
Сортировать по времени изменения (самые новые файлы отображаются в конце):
ls -ltr
Вывести список всех каталогов в корневом каталоге:
# ls / bin dev lib media net root srv upload www boot etc lib64 misc opt sbin sys usr home lost+found mnt proc selinux tmp var
Вывести подробную информацию обо всех каталогах и файлах в каталоге /bin:
ls -lR /bin
Когда имена файлов содержат пробелы, специальные символы или начинаются с дефиса, можно использовать обратную косую черту (\) для экранирования или заключать имена файлов в кавычки. Например:
ls "my file.txt" # 列出文件名为"my file.txt"的文件 ls my\ file.txt # 列出文件名为"my file.txt"的文件 ls -- -filename # 列出文件名为"-filename"的文件
Команда ls также может использовать подстановочные знаки для сопоставления с шаблоном, например,*обозначает совпадение с любыми символами,?обозначает совпадение с одним символом,[...]обозначает совпадение с символами в указанном диапазоне. Например:
ls *.txt # 列出所有扩展名为.txt的文件 ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符 ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
Вывести список всех файлов в текущем рабочем каталоге, имена которых начинаются с s, при этом самые новые в конце:
ls -ltr s*
При использовании командыls -lпервый столбец символов указывает тип и права доступа файла или каталога. Первый символ указывает тип файла, например:
- - обозначает обычный файл
- d обозначает каталог
- l обозначает символическую ссылку
- c обозначает символьный файл устройства
- b обозначает блочный файл устройства
- s обозначает файл сокета
- p обозначает файл канала
При использовании командыls -lоставшиеся 9 символов в первом столбце обозначают права доступа файла или каталога, соответствующие группам из трёх символовrwx. Например
:- r обозначает право на чтение
- w обозначает право на запись
- x обозначает право на выполнение
- - обозначает отсутствие соответствующего права
Первые три символа представляют права владельца, средние три — права группы, а последние три — права других пользователей. Например:
-rw-r--r-- 1 user group 4096 Feb 21 12:00 file.txt
Обозначает файл с именем file.txt; владелец имеет права на чтение и запись, а группа и другие пользователи — только право на чтение.
Найти недавно изменённые файлы:
ls -lt | head -5
Показать 5 самых недавно изменённых файлов.
Подсчитать количество файлов:
ls | wc -l
Подсчитайте количество файлов в текущем каталоге (исключая скрытые файлы).
Примечания
Цветом вывода команды ls можно управлять с помощью опции --color:
- Синий: каталог
- Зелёный: исполняемый файл
- Красный: сжатый файл
- Голубой: файл ссылки
- Жёлтый: файл устройства
При использовании ls в скриптах учтите, что прямой разбор вывода ls может быть ненадёжным; рекомендуется использовать другие методы.
Команда ls может немного отличаться в разных дистрибутивах Linux; вы можетеman lsпросмотреть конкретную справочную документацию.
Справочник команд Linux