Одной из распространенных задач, которую вы будете выполнять при использовании интерфейса командной строки в Linux, является навигация по каталогам. Файловая система Linux иерархична по своей природе, и самый верхний каталог называется корневым и обозначается прямой косой чертой с наклоном вправо (/), так же известна как слеш.
Содержание:
- Переход в корневой каталог
- Переход в домашнюю папку
- Переход в домашний каталог другого пользователя
- Переход к определенному подкаталогу
- Переход на один уровень вверх
- Перемещение на несколько уровней вверх
- Переход в предыдущий рабочий каталог
- Навигация с использованием относительного пути
- Навигация с использованием абсолютного пути
Команда, используемая для изменения текущего рабочего каталога, называется cd (Change Directory) т.е. смена директории. Она принимает ровно один аргумент, которым является путь к папке или каталогу. Самое важное понятие, которое необходимо запомнить при использовании команды cd, — это понятие текущего рабочего каталога или PWD.
При использовании интерфейса командной строки вы всегда находитесь в определенном каталоге. Он называется текущим рабочим каталогом. Вы можете узнать этот каталог с помощью команды pwd, которая выводит абсолютный путь к текущему рабочему каталогу. Переменная окружения PWD также содержит значение текущего рабочего каталога.
Переход в корневой каталог
cd /
Самый верхний каталог файловой системы называется корневым, а путь к корневому каталогу — прямая косая черта (/), слеш. Эта команда приведет вас в корневой каталог вашей файловой системы. Если вы хотели перейти в домашнюю папку пользователя root, то это папка /root/.
cd /root/
Переход в домашнюю папку
Под домашней папкой обычно подразумевается каталог верхнего уровня в файловой иерархии, который служит личным хранилищем личных файлов пользователя. Пользователь имеет полные права на эту папку и обычно, он является начальным каталогом, в который попадает пользователь при входе в систему.
Это также папка, которая является значением переменной окружения HOME. Поэтому, если вы не укажете аргумент командной строки для команды cd, то она использует значение переменной окружения HOME по умолчанию, и вы окажетесь в своей домашней папке.
cd
Тильда (~) работает как ярлык, обозначающий домашнюю папку пользователя верхнего уровня. Пользователем по умолчанию является пользователь, вошедший в систему в данный момент. Поэтому для пользователя, вошедшего в систему, команда ниже работает точно так же, как и в предыдущем примере.
cd ~
Переход в домашний каталог другого пользователя
Если после тильды (~) указать имя пользователя (называемое login id), то результат команды укажет на домашний каталог этого пользователя. Это означает, что вы можете перейти в домашний каталог пользователя по имени megakolyan с помощью следующей команды.
cd ~megakolyan
Это работает как отправная точка, если вы пытаетесь перейти в подкаталоги другого пользователя. Само собой разумеется, что для этого вам понадобятся соответствующие права.
Переход к определенному подкаталогу
Все приведенные выше примеры показывали, как перейти к заранее определенному каталогу в файловой системе Linux. Если вы хотите перейти в подкаталог из текущего рабочего каталога, то для этого нужно указать имя подкаталога.
Чтобы перейти к подкаталогу с именем first в текущем каталоге, воспользуйтесь командой
cd first/
Вы можете указать путь к другим каталогам в пути, разделенный прямой косой чертой (/). Прямая косая черта служит разделителем между папками (и файлами) при указании пути к определенным каталогам. Если у вас есть подкаталог с именем first и другой подкаталог под first с именем second, то вы можете перейти к second/, используя путь first/second.
cd first/second/
Переход на один уровень вверх
Если вы хотите перейти в родительский каталог, то можете использовать обозначение из двух точек (..). Родительский каталог определяется как каталог, который находится на один уровень выше текущего рабочего каталога.
Если ваш текущий рабочий каталог — /root/first/second/, то, выполнив приведенную ниже команду, вы окажетесь в /root/first/.
cd ..
Перемещение на несколько уровней вверх
Как и в случае с именованными каталогами, вы можете перемещаться на несколько уровней вверх, используя несколько «двух точек» (..) разделенных прямой косой чертой (/). В приведенном ниже примере вы переместитесь на три уровня вверх от текущего рабочего каталога.
cd ../../..
Переход в предыдущий рабочий каталог
Предыдущий рабочий каталог определяется как рабочий каталог до выполнения текущей команды, которая изменила каталог. Это похоже на нажатие кнопки «Назад» в веб-браузере.
Вы используете дефис (-) в качестве сокращения для указания предыдущего рабочего каталога. Переменная окружения OLDPWD хранит значение предыдущего рабочего каталога.
cd -
Навигация с использованием относительного пути
При навигации к определенному каталогу в файловой системе, обычно существует два типа путей к каталогу, которые вы можете использовать. Один из них — это относительный путь, а другой — абсолютный. Относительный путь является относительным по отношению к текущему рабочему каталогу.
В приведенном ниже примере вы перейдете в папку, которая находится на два уровня выше текущей папки, затем перейдете в подпапку с именем first/, а затем в подпапку с именем second/ под ней.
cd ../../first/second/
Вам необходимо знать текущий рабочий каталог, если вы используете относительный путь для перехода к папке.
Навигация с использованием абсолютного пути
Абсолютный путь к папке является относительным по отношению к корневой папке (/) файловой системы. Независимо от того, какой у вас текущий рабочий каталог, абсолютный путь к папке всегда один и тот же. Использование абсолютного пути полезно при написании сценариев оболочки, так как вы можете не выполнять сценарий из одного и того же каталога все время.
cd /home/megakolyan/first/second/
Абсолютный путь всегда начинается с прямой косой черты (/), а относительный — нет. Абсолютный путь полезен в ситуациях, когда вам не нужно предполагать текущий рабочий каталог.
cd / |
Переход в корневой каталог |
cd ~ |
Переход в домашнюю папку |
cd ~megakolyan |
Переход в домашний каталог другого пользователя |
cd first/ |
Переход к определенному подкаталогу |
cd .. |
Переход на один уровень вверх |
cd ../../.. |
Перемещение на несколько уровней вверх |
cd - |
Переход в предыдущий рабочий каталог |
cd ../../first/second/ |
Навигация с использованием относительного пути |
cd /home/megakolyan/first/second/ |
Навигация с использованием абсолютного пути |