Перейти к содержанию

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.txtfile.txt
dirname Показывает путь к каталогу без имени файла. Пример: dirname /home/user/file.txt/home/user
realpath Показывает абсолютный путь к файлу или каталогу.
xargs Позволяет передавать списки файлов другим командам (например, `find ...
rsync Мощная утилита для синхронизации и копирования файлов и каталогов, поддерживает удалённые серверы.
tar Архивирование файлов и каталогов в формат .tar, используется для резервного копирования.
gzip, bzip2, xz Утилиты сжатия файлов, часто используются вместе с tar.

Заключение

Управление файлами и каталогами — ключевая компетенция администратора Linux. Понимание структуры файловой системы, умение быстро находить, создавать, копировать, перемещать и удалять каталоги обеспечивает стабильную и организованную работу системы. Эти навыки являются основой для дальнейшего освоения администрирования Linux.