📁 Работа с директориями в Linux
🧭 Введение
Каталоги (директории) — основа файловой структуры Linux. Понимание того, как перемещаться, создавать, удалять и управлять директориями — ключ к эффективной работе в консоли.
📍 1. Перемещение между директориями — cd
cd /etc
Опции и примеры:
| Команда | Действие |
|---|---|
cd / |
перейти в корневой каталог |
cd ~ |
перейти в домашний каталог текущего пользователя |
cd .. |
подняться на уровень выше |
cd - |
вернуться в предыдущую директорию |
cd /var/log |
перейти в указанную директорию |
📘 Пример:
cd /etc/nginx
cd ..
cd /usr/local/bin
[!TIP] Команда
cd -часто недооценивается — она экономит время при переключении между двумя каталогами.
🧭 2. Текущая директория — pwd
pwd
Показывает текущий путь (print working directory).
📘 Пример:
cd /etc/systemd
pwd
# /etc/systemd
[!NOTE] Полезно при сложной навигации или в скриптах, где нужно знать текущий путь.
🧩 3. Получение имени файла или каталога — basename и dirname
🔹 basename — имя файла без пути
basename /etc/nginx/nginx.conf
# nginx.conf
🔹 dirname — путь к каталогу без имени файла
dirname /etc/nginx/nginx.conf
# /etc/nginx
[!TIP] Часто применяются в bash-скриптах для обработки путей.
📘 Пример в скрипте:
FILE="/etc/ssh/sshd_config"
echo "Файл: $(basename $FILE)"
echo "Путь: $(dirname $FILE)"
📂 4. Создание каталогов — mkdir
mkdir new_folder
Опции:
-p— создать все недостающие подкаталоги;-v— показать процесс создания.
📘 Примеры:
mkdir projects
mkdir -p /data/backups/2025/january
mkdir -pv /opt/logs/nginx
[!TIP] Ключ
-pнезаменим при создании многоуровневых структур каталогов.
🧹 5. Удаление каталогов — rmdir и rm -r
🔹 Удаление пустой директории:
rmdir empty_folder
[!NOTE]
rmdirудаляет только пустые каталоги.
🔹 Удаление каталога с содержимым:
rm -r old_project/
Опции:
-r— рекурсивное удаление;-f— принудительно (без подтверждения);-v— показать процесс.
📘 Пример:
rm -rf /tmp/test_dir/
[!WARNING] ⚠️ Будь предельно осторожен с
rm -rf— можно легко удалить важные файлы. Проверяй путь перед выполнением:echo $PWD
🗃️ 6. Просмотр структуры каталогов — tree
tree /etc/nginx
Показывает древовидную структуру каталогов.
📘 Пример:
sudo apt install tree
tree -L 2 /etc
Полезные опции:
-L <уровень>— глубина отображения;-d— показывать только каталоги.
[!TIP]
tree -dL 3 /var— покажет только каталоги до 3 уровней.
🧾 7. Просмотр содержимого каталога — ls
ls -l
ls -lah /var/log
См. также статью “Основные операции с файлами” для подробностей.
🧰 8. Изменение владельца и прав доступа к директории
sudo chown user:group /opt/projects
sudo chmod 755 /opt/projects
chown— меняет владельца и группу;chmod— задаёт права доступа.
📘 Пример:
sudo chown -R www-data:www-data /var/www/
sudo chmod -R 750 /var/www/
[!IMPORTANT]
-R— рекурсивное применение ко всем подкаталогам.
🔍 9. Поиск директорий — find
find /etc -type d -name "nginx"
Ключи:
-type d— искать только директории;-name— фильтр по имени.
📘 Пример:
find /var -type d -mtime -1
# все каталоги, изменённые за последние сутки
🔗 10. Символические ссылки на директории — ln -s
ln -s /var/www /home/user/web
Теперь /home/user/web будет ссылкой на /var/www.
📘 Пример:
ls -l ~/web
# web -> /var/www
[!TIP] Удобно для быстрого доступа к часто используемым каталогам.
🧠 11. Полезные трюки
🔹 Создать несколько каталогов за один раз
mkdir {docs,images,scripts,backup}
🔹 Создать дерево директорий
mkdir -p project/{src,bin,logs,tmp}
🔹 Удалить все пустые каталоги в текущем пути
find . -type d -empty -delete
🔹 Подсчитать количество каталогов
find . -type d | wc -l
🔹 Перейти в директорию, где находится исполняемый файл
cd $(dirname $(which nginx))
🚀 Заключение
Работа с директориями — основа эффективного администрирования Linux.
Освоив cd, mkdir, rm, find и ln, можно уверенно управлять любыми структурами каталогов.
[!TIP] Для ускорения работы добавь в
~/.bashrcполезные алиасы:alias ..='cd ..' alias ...='cd ../..' alias md='mkdir -pv' alias rd='rmdir -v' alias ll='ls -alh'После сохранения применить:
source ~/.bashrc