Поиск по сайту:
Какая разница между машиной тьюринга и современной эвм? Такая же, как между восхождением хиллари на эверест и открытием отеля "Хилтон" на его вершине. (Алан.Дж.Перлис)

Абсолютный против относительного пути в Linux

16.01.2023
Абсолютный против относительного пути в Linux

При работе с файлами и каталогами в Linux вы должны знать, как работать с путями для быстрой навигации и доступа к файлам. Путь определяет маршрут для доступа к данной папке или файлу. Структура каталогов Linux напоминает корни дерева, где все начинается от корня до ветвей, пока вы не достигнете целевого файла или папки.

Сегодняшняя статья посвящена пониманию путей в Linux. Мы будем копаться в абсолютных и относительных путях в Linux, чтобы понять их различия и то, как использовать каждый из них при поиске пути к файлу или папке.

 

Понимание абсолютного и относительного пути в Linux

Файловая система Linux — это все о файлах и каталогах — доступ к этим файлам или папкам осуществляется с помощью путей. Каждый путь начинается с корневого каталога, представленного косой чертой (/). Из корневого каталога вы можете получить разделители. Вы можете использовать относительный или абсолютный путь.

1. Абсолютный путь

Вы используете абсолютный путь, когда указываете путь к файлу или папке, начиная с корневого каталога. Этот путь начинается с корня (/), за которым следуют разделители к другим каталогам в середине, прежде чем вы достигнете целевого файла.

Чтобы понять абсолютный путь в Linux, давайте рассмотрим пример использования команды pwd.

andreyex@andreyex: $
andreyex@andreyex: $ pwd
/home/andreyex
andreyex@andreyex:

 

Вы заметите, что наш текущий путь в данном случае — /home/andreyex. Первая косая черта (/) обозначает корневой каталог. Все пользователи, созданные в системе Linux, сохраняются в домашнем каталоге. В данном случае имя нашего пользователя andreyex. Таким образом, этот абсолютный путь является домашним каталогом andreyex и содержит все остальные дочерние каталоги.

andreyex@andreyex: $ ls Desktop Downloads Pictures snap Documents Music Public
Videos
Templates wget-log
andreyex@andreyex: $

 

Читать  Kubectl - Как перезапустить Pod

Предположим, мы хотим вывести содержимое каталога Downloads для указанного пользователя, вы можете сделать это, используя его абсолютный путь, как показано ниже.

$ ls /home/andreyex/Downloads/

 

andreyex@andreyex: $ ls Desktop Downloads Pictures snap
Videos
Documents Music Public Templates wget-log 
andreyex@andreyex: $ ls /home/andreyex/Downloads/
names.txt
andreyex@andreyex: $

 

Абсолютный путь в Linux позволяет получить доступ к файлам и папкам в других местах без перехода в их родительский каталог.

 

2. Относительный путь

В отличие от абсолютного пути, который начинается с корневого каталога, относительные пути начинаются с текущего рабочего каталога. Таким образом, относительный путь меняется в зависимости от вашего текущего каталога.

Например, ссылаясь на более ранний пример доступа к содержимому /Downloads, наша команда изменится следующим образом, если мы хотим использовать абсолютный путь:

$ ls Downloads/

 

wyey
lnuxhint@andreyex: $ ls /home/andreyex/Downloads/ names.txt
andreyex@andreyex: $ ls Downloads/
names.txt
andreyex@andreyex: $

 

Целевая папка находится в текущем каталоге, что означает, что мы можем напрямую ссылаться на нее, не добавляя корневой каталог.

Относительный путь позволяет использовать одну точку (.) и двойную точку (..) для указания путей вверх или вниз по текущему каталогу. Эти точки не видны, если вы не используете их для доступа к целевому файлу.

Одна точка указывает текущий каталог, а двойная точка представляет его родительский каталог.

Приведем пример.

Мы находимся в пути /home/andreyex/Downloads/names.

andreyex@andreyex:-/Downloads/names$
andreyex@andreyex: -/Downloads/names$ pwd
/home/andreyex/Downloads/names andreyex@andreyex:~/Downloads/names$

 

Предположим, мы хотим вывести содержимое Downloads/, не вводя его абсолютный путь, мы могли бы использовать двойные точки для относительного пути, чтобы получить доступ к родительскому каталогу с помощью команды ниже.

$ ls ../

 

andreyex@andreyex: -/Downloads/names$
andreyex@andreyex:-/Downloads/names$ pwd /home/andreyex/Downloads/names
andreyex@andreyex:-/Downloads/names$ ls .
files.txt names
andreyex@andreyex:~/Downloads/names$

 

Читать  Примеры декораторов Python

Использование относительного пути в таком случае более удобно, в отличие от абсолютного пути, который требует ввода всего пути, как показано.

andreyex@andreyex:~/Downloads/names$ ls . files.txt names 
andreyex@andreyex:-/Downloads/names$ ls /home/andreyex/Downloads/ files.txt names 
andreyex@andreyex:~/Downloads/names$

 

Точно так же, если бы мы хотели подняться выше в родительском каталоге, мы могли бы добавить больше двойных точек с разделителем. В приведенном ниже примере мы получили доступ к домашнему каталогу.

andreyex@andreyex: -/Downloads/names $ 
andreyex@andreyex:-/Downloads/names$ ls …/…/ Desktop Downloads Pictures snap Videos Documents Music Public Templates wget-log 
andreyex@andreyex:~/Downloads/names$

 

Если бы мы хотели получить доступ к каталогу в дочернем каталоге нашего текущего каталога, мы могли бы указать его относительный путь, используя одинарные кавычки.

andreyex@andreyex:-/Downloads$ 
andreyex@andreyex:-/Downloads$ ls
files.txt names
andreyex@andreyex:-/Downloads$ ls ./names/demo/ names.txt
andreyex@andreyex:-/Downloads$

 

Абсолютный путь против относительного пути

Абсолютный путь указывает путь к папке или файлу, начиная с корневого каталога, за которым следует домашний каталог пользователя. Однако относительный путь указывает путь к файлу или папке, начиная с текущего каталога.

Используйте относительный путь при доступе к дочернему или родительскому каталогу, начиная с текущего каталога. Используйте абсолютный путь для доступа к файлу или папке в файловой системе или из другого места без переключения текущего каталога.

 

Заключение

В этой статье обсуждалось, что означают абсолютные и относительные пути в Linux. Мы видели примеры в каждом случае и то, как выбрать любой вариант в зависимости от местоположения вашего целевого файла или папки. С помощью этого поста вы быстро поймете, как работать с путями в Linux.

Читать  Исправление ошибки «System has not been booted with systemd as init system»

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
AMD опубликовала новые драйверы для своих последних графических процессоров RDNA…

Спасибо!

Теперь редакторы в курсе.