05. Управление файлами и каталогами
Введение
Файлы и каталоги — основа всей работы в Linux. Любая информация в системе (документы, программы, конфигурации, журналы) хранится в виде файлов, а каталоги (папки) организуют эти файлы в иерархическую структуру.
Для администратора Linux умение управлять файлами и каталогами — это ключевой базовый навык. Без него невозможно:
- настраивать и поддерживать структуру проекта или сервера,
- размещать и обновлять конфигурационные файлы,
- сохранять и восстанавливать резервные копии,
- анализировать логи и отчёты,
- автоматизировать задачи с помощью скриптов.
В отличие от графических систем управления файлами (например, файловых менеджеров), в Linux почти все административные действия выполняются через командную строку. Это особенно важно при работе с удалёнными серверами, где графическая оболочка обычно отсутствует.
Навигация по файловой системе
Навигация — это перемещение по каталогам (папкам) и просмотр их содержимого. В Linux для этого существует ряд базовых команд:
pwd(print working directory) — показывает текущий рабочий каталог.- Полезно для проверки, где вы сейчас находитесь в иерархии файловой системы.
ls(list) — отображает содержимое текущего каталога.ls -l— показывает подробный список с правами, владельцами, размерами и датой изменений.ls -a— показывает скрытые файлы и каталоги (их имена начинаются с точки.).ls -lh— показывает размеры файлов в удобном для чтения виде (КБ, МБ).
cd <путь>(change directory) — переход в указанный каталог.cd ..— переход на один уровень выше (в родительский каталог).cd ~— переход в домашний каталог пользователя.cd /— переход в корневой каталог.cd -— вернуться в предыдущий каталог.
Примеры использования:
pwd
# /home/student
ls -la
# отобразит все файлы и каталоги, включая скрытые
cd /etc
pwd
# /etc
cd ..
pwd
# / (если вы были в /etc)
Совет: используйте клавишу Tab для автодополнения путей и имён файлов при навигации — это ускоряет работу и снижает количество ошибок.
Работа с каталогами
Каталоги — это контейнеры для файлов и других каталогов. Работа с ними включает их создание, переименование, перемещение и удаление. Основные команды:
mkdir <имя>— создать новый каталог в текущем расположении.mkdir -p <путь/к/каталогу>— создать несколько вложенных каталогов сразу (если промежуточные не существуют).rmdir <имя>— удалить пустой каталог.rm -r <имя>— удалить каталог и всё его содержимое рекурсивно.mv <старое_имя> <новое_имя>— переименовать каталог или переместить его в другое место.cp -r <каталог> <путь>— скопировать каталог вместе со всем содержимым.tree— (если установлен) отобразить структуру каталогов в виде дерева.
Примеры использования:
mkdir project # создание каталога
mkdir -p project/src # создание вложенных каталогов
mv project/src . # перемещение каталога
cp -r project backup # копирование каталога
rmdir empty_folder # удаление пустого каталога
rm -r project # удаление каталога с содержимым
Важно: при использовании rm -r будьте внимательны — удаление происходит безвозвратно и не попадает в корзину.
Работа с файлами
touch <имя>— создать пустой файл.cp <источник> <назначение>— копирование файла.cp -r <каталог> <путь>— копирование каталогов рекурсивно.
mv <источник> <назначение>— перемещение или переименование.rm <имя>— удаление файла.cat <имя>— просмотр содержимого файла.less <имя>— постраничный просмотр.head <имя>— показать первые строки файла.tail <имя>— показать последние строки файла.tail -f <имя>— «живой» просмотр (например, логов).
Пример:
touch file1.txt # создание пустого файла
cp file1.txt copy1.txt # копирование файла
mv copy1.txt docs/file2.txt # перемещение и переименование файла
rm file1.txt # удаление файла
Полезные команды и утилиты
Помимо базовых команд, существует множество утилит, которые упрощают работу с файлами и каталогами и часто используются администраторами:
| Команда | Назначение |
|---|---|
mc |
Midnight Commander — консольный файловый менеджер с двумя панелями. Позволяет копировать, перемещать, удалять файлы в удобном интерфейсе. |
ncdu |
Анализатор дискового пространства. Показывает, какие каталоги занимают больше всего места, позволяет удалять их. |
tree |
Выводит дерево каталогов с отображением вложенной структуры. |
basename |
Показывает только имя файла из полного пути. Пример: basename /home/user/file.txt → file.txt |
dirname |
Показывает путь к каталогу без имени файла. Пример: dirname /home/user/file.txt → /home/user |
realpath |
Показывает абсолютный путь к файлу или каталогу. |
xargs |
Позволяет передавать списки файлов другим командам (например, `find ... |
rsync |
Мощная утилита для синхронизации и копирования файлов и каталогов, поддерживает удалённые серверы. |
tar |
Архивирование файлов и каталогов в формат .tar, используется для резервного копирования. |
gzip, bzip2, xz |
Утилиты сжатия файлов, часто используются вместе с tar. |
Заключение
Управление файлами и каталогами — ключевая компетенция администратора Linux. Понимание структуры файловой системы, умение быстро находить, создавать, копировать, перемещать и удалять каталоги обеспечивает стабильную и организованную работу системы. Эти навыки являются основой для дальнейшего освоения администрирования Linux.