Навигация и базовые команды файловой системы

Учимся перемещаться по папкам и управлять файлами из командной строки.

Путь — это адрес файла или папки в файловой системе; он бывает абсолютным (от корня /) или относительным (от текущей папки).

Где я нахожусь и что вокруг

Три команды-ориентира: pwd показывает текущую папку, ls — её содержимое, cd — переход в другую папку.

pwd
ls -la
cd /var/log
cd ..
cd ~

cd .. поднимается на уровень выше, cd ~ (или просто cd) ведёт в домашнюю папку, cd - возвращает в предыдущую.

Абсолютные и относительные пути

Абсолютный путь начинается с / и не зависит от того, где вы сейчас: /home/user/project. Относительный отсчитывается от текущей папки: project/src. Специальные обозначения: . — текущая папка, .. — родительская, ~ — домашняя.

ЗаписьЗначение
/корень файловой системы
~домашняя папка пользователя
.текущая папка
..папка на уровень выше

Создаём, копируем, удаляем

mkdir -p project/src
cp file.txt project/src/
mv project/src/file.txt project/main.txt
cat project/main.txt
rm project/main.txt
rm -r project

Опция -p у mkdir создаёт всю цепочку папок сразу и не ругается, если они уже есть. cp копирует, mv перемещает или переименовывает, rm удаляет, а rm -r удаляет папку со всем содержимым.

Как работает под капотом

В Linux всё — файл, и файловая система устроена как дерево с единственным корнем /. У каждого процесса (включая вашу оболочку) есть «текущая рабочая папка» — именно относительно неё считаются относительные пути. Команда cd меняет этот параметр у самой оболочки, поэтому cd — встроенная команда Bash, а не отдельная программа: внешняя программа не смогла бы поменять папку родителя.

Частые ошибки

  • rm -rf без раздумий. rm -rf / или rm -rf $VAR/ с пустой переменной может стереть систему. Всегда проверяйте путь дважды; rm в Bash не спрашивает подтверждения и не имеет «корзины».
  • Пробелы в именах. cd Мои файлы уйдёт в папку Мои. Имена с пробелами берите в кавычки: cd "Мои файлы".
  • Путаница . и ~. Точка — текущая папка, тильда — домашняя; это разные места.

Итог

  • pwd, ls, cd — базовая навигация по дереву каталогов.
  • Пути бывают абсолютные (от /) и относительные (от текущей папки).
  • mkdir -p, cp, mv, rm -r — создание и управление файлами; rm необратим.
Проверьте себя
1. Куда переведёт команда cd ~?
AВ корень файловой системы
BВ домашнюю папку пользователя
CВ предыдущую папку
DНа уровень выше
2. Что делает mkdir -p a/b/c?
AСоздаёт только папку c
BСоздаёт всю цепочку a, a/b и a/b/c сразу
CВыдаёт ошибку, если a не существует
DУдаляет папки a, b, c
3. Почему cd является встроенной командой Bash, а не отдельной программой?
AТак быстрее печатать
BВнешняя программа не смогла бы изменить текущую папку родительской оболочки
CЧтобы работала без PATH
DЭто историческая случайность