Основные команды
Содержание курса
Разбор команды ls
Что такое ls?
Команда ls (от англ. list) используется для вывода списка файлов и директорий в указанном каталоге. Это основная утилита для навигации по файловой системе в Bash и других оболочках.
Основной синтаксис
ls [опции] [файл или директория]
- Если аргументы не заданы, ls выводит содержимое текущего каталога.
- Если указан путь к каталогу, выводятся файлы и папки в этом каталоге.
- Если указан конкретный файл, ls покажет его имя и, в зависимости от опций, дополнительную информацию.
Основные опции ls
-l— вывод в длинном формате. Показывает подробную информацию: права доступа, количество ссылок, владельца, группу, размер, дату последнего изменения и имя файла.-a— вывод всех файлов, включая скрытые (те, имена которых начинаются с точки.).-h— при использовании с-l(например,ls -lh) размеры файлов выводятся в "читаемом" виде (например, 1K, 234M, 2G).-r— обратная сортировка (реверсивный порядок).-t— сортировка по времени изменения, начиная с самых новых.-S— сортировка по размеру.-R— рекурсивный вывод содержимого каталогов: ls покажет не только файлы текущего каталога, но и их содержимое.--color=auto— вывод с цветовой разметкой (обычно включён по умолчанию в современных системах). Цвета помогают визуально отличать каталоги, файлы, символические ссылки и исполняемые файлы.
Примеры использования
1. Базовый вывод
ls
Выводит список файлов и папок в текущей директории. Это самый простой вариант использования команды.
2. Длинный формат
ls -l
Выводит подробную информацию для каждого файла. Пример строки вывода:
-rw-r--r-- 1 user group 4096 Mar 10 14:23 example.txt
Здесь:
-rw-r--r--— права доступа.1— количество ссылок.(см. ниже)user— владелец файла.group— группа.4096— размер файла в байтах.Mar 10 14:23— дата и время последнего изменения.example.txt— имя файла.
3. Скрытые файлы
ls -a
Выводит все файлы, включая те, что начинаются с точки (скрытые файлы, например, .bashrc).
4. Читаемый размер файлов
ls -lh
Опция -h (human-readable) делает вывод размера файлов более понятным: 1K, 234M, 2G и т.д.
5. Сортировка по времени
ls -lt
Отсортирует файлы так, что в начале будут самые недавно изменённые.
6. Рекурсивный вывод
ls -R
Выведет содержимое текущего каталога, а затем рекурсивно покажет содержимое всех вложенных подкаталогов.
7. Использование нескольких опций
Комбинировать опции можно для получения более информативного вывода. Например:
ls -alh --color=auto
Выведет все файлы (включая скрытые) в длинном формате с читаемым размером и цветовой разметкой.
Особенности и советы
-
Цветовая разметка:
Цвета помогают быстро ориентироваться. Например, каталоги обычно отображаются синим цветом, исполняемые файлы — зелёным, символические ссылки — светло-голубым или другим отличительным цветом. Это зависит от настроек терминала и переменной окруженияLS_COLORS. -
Использование шаблонов:
ls можно комбинировать с подстановочными знаками для фильтрации файлов. Например:ls *.txt
Выведет только файлы с расширением .txt.
-
Сортировка:
Опции сортировки (-t,-S,-r) полезны для быстрой оценки, какие файлы недавно изменялись или занимают больше всего места. -
Скрытые файлы:
Опция-aособенно полезна, когда нужно найти файлы конфигурации или скрытые каталоги (например,.gitили.config).
Практическое применение
-
Навигация:
Перед выполнением операций с файлами полезно увидеть полный список файлов в каталоге, чтобы удостовериться, что нужный файл действительно там присутствует:ls -alh /home/username/Documents
-
Скрипты:
Скрипты могут использовать ls для динамического получения списка файлов. Например, для перебора всех .log файлов:for file in *.log; do echo "Обработка файла: $file" # дальнейшая обработка done
Количество жёстких ссылок
Третий столбец вывода ls -l показывает число hard links (жёстких ссылок) на один и тот же inode:
- Для обычного файла:
- Начальное значение –
1. - При создании новой жёсткой ссылки (
ln original newlink) счётчик увеличивается.
- Начальное значение –
- Для директории:
- Базово –
2(записи.и ссылка из родительской директории). - Каждая вложенная поддиректория добавляет ещё одну ссылку через свою запись
... - Поэтому формула для директории:
число ссылок = 2 + количество поддиректорий.
- Базово –
Например:
mkdir demo && cd demo touch a.txt ln a.txt b.txt mkdir sub
ls -ld .покажет3— это.,..и поддиректорияsub.ls -lдля файловa.txtиb.txtпокажет2— две ссылки на один и тот же inode.
Такой способ подсчёта работает до тех пор, пока файловая система не ограничивает максимальный счётчик ссылок на директорию.
