Если вы только начинаете работать с операционной системой Linux, то наверняка сталкивались с такими понятиями, как абсолютный и относительный путь.
Эти термины важны для навигации по файловой системе, поиска файлов и работы с командной строкой.
В этой статье я подробно расскажу, что такое абсолютный и относительный путь в Linux, чем они отличаются, как их использовать, и зачем они нужны.
- Что такое абсолютный путь в Linux?
- Что такое относительный путь в Linux?
- Чем отличаются абсолютный и относительный пути?
- Как работать с путями в командной строке Linux
- Как правильно использовать пути для навигации
- Почему важно знать разницу между абсолютным и относительным путём?
- Советы для начинающих: как быстро ориентироваться в путях
Что такое файловая система в Linux?
Перед тем как перейти к объяснению путей, важно понять, что такое файловая система Linux. Это структура данных, которая организует все файлы и папки на вашем компьютере.
В Linux все файлы расположены внутри единой структуры — корневой директории, которая обозначается символом /.
Например:
/
├── afs
├── bin -> usr/bin
├── boot
│ ├── efi
│ │ └── EFI
│ │ └── centos
│ ├── grub2
│ │ ├── fonts
│ │ ├── i386-pc
│ │ └── locale
│ └── loader
│ └── entries
├── dev
│ ├── block
│ ├── bsg
│ ├── bus
│ │ └── usb
│ │ ├── 001
│ │ └── 002
…
Здесь / — это корень системы. Все остальные папки и файлы находятся внутри этой структуры.
Самая распространенная аналогия позволяющая представить систему директорий и поддиректорий – вложенные коробки.
На полу (внешний уровень – корень) несколько коробок, в каждой коробке еще несколько коробок, которые так же могут содержать в себе коробки.
И чем в более вложенной коробке лежит наш объект, тем больше промежуточных коробок нам нужно раскрыть, чтоб до него добраться:
пол/коробка-на-полу/коробка-вложенная-в-коробку-на-полу/и-т-д
Что такое абсолютный путь в Linux?
Абсолютный путь — это полный адрес файла или папки в системе, начиная с корня /. Он показывает точное местоположение файла вне зависимости от того, где вы сейчас находитесь.
Почему важен абсолютный путь?
Понимание абсолютных путей важно для точного указания местоположения файла или папки. Например, если вы хотите открыть файл example.txt, который находится в папке /home/waky/Documents, то его абсолютный путь будет:
/home/waky/Documents/example.txt
Этот путь всегда указывает именно на этот файл вне зависимости от того, где вы сейчас находитесь.
Примеры абсолютных путей
/etc/passwd — файл паролей пользователей
/var/log/syslog — системный лог
/home/waky/Desktop — рабочий стол пользователя
/usr/bin/ls — команда ls
Как определить абсолютный путь?
Если вы хотите узнать абсолютный путь к текущей директории (там, где вы сейчас находитесь), используйте команду pwd:
[root@waky practice]# pwd
/root/practice
[root@waky practice]#
Она выводит полный адрес текущей папки.
Если нужно узнать абсолютный путь к конкретному файлу или папке внутри текущей директории, можно использовать команду realpath. Например:
[root@waky practice]# ls
dir1 dir3 file0.txt
[root@waky practice]# realpath file0.txt
/root/practice/file0.txt
[root@waky practice]#
В текущей директории лежит файл file0.txt, применив к нему утилиту realpath, мы получим абсолютный путь до этого файла.
Есть еще одна полезная команда, которая помогает визуализировать структуру файлов и папок – tree.
Если она не включена в ваш дистрибутив, установите с помощью соответствующего пакетного менеджера, для CentOS это:dnf install tree -y
Вывести древовидную структуру заданной директории:
[root@waky practice]# tree /root/practice/
/root/practice/
├── dir1
│ ├── dir2
│ │ └── file2.txt
│ └── file1.txt
├── dir3
│ └── file3.txt
└── file0.txt
3 directories, 4 files
[root@waky practice]#
Что такое относительный путь в Linux?
Относительный путь — это адрес файла или папки относительно текущей директории. Он не начинается с /, а указывается относительно того места, где вы сейчас находитесь.
Почему важен относительный путь?
Относительные пути удобны при работе внутри одной папки или при перемещении по структуре без необходимости писать полный адрес. Они позволяют быстро переходить между файлами и папками без длинных путей.
Примеры относительных путей
Опустимся на один уровень ниже, перейдем из директории practice в директорию dir1:
[root@waky practice]# cd dir1/
[root@waky dir1]#
Наша текущая директория dir1 относительно нее и будем рассматривать расположение соседних директорий. В этом примере:
Чтобы обратиться к файлу file1.txt, который находится в этой же директории, относительный путь будет:
file1.txt
или ./file1.txt
. – одна точка указывает на текущую директорию
[root@waky dir1]# ls file1.txt
file1.txt
[root@waky dir1]#
Абсолютный путь до того же файла:
[root@waky dir1]# ls /root/practice/dir1/file1.txt
/root/practice/dir1/file1.txt
[root@waky dir1]#
Относительный путь до файла file2.txt находящегося в поддиректории dir2:
dir2/file2.txt
[root@waky dir1]# ls dir2/file2.txt
dir2/file2.txt
[root@waky dir1]#
В таком случае абсолютный путь будет:
[root@waky dir1]# ls /root/practice/dir1/dir2/file2.txt
/root/practice/dir1/dir2/file2.txt
[root@waky dir1]#
Если нужно двигаться в обратную сторону – на уровень выше:
../file0.txt
.. – две точки указывают на директорию родительскую к текущей
[root@waky dir1]# ls ../file0.txt
../file0.txt
[root@waky dir1]#
Абсолютный путь:
[root@waky dir1]# ls /root/practice/file0.txt
/root/practice/file0.txt
[root@waky dir1]#
А путь до файла file3.txt из параллельной директории выглядит так:
../dir3/file3.txt
Мы сначала поднимаемся на один уровень выше, а затем погружаемся в директорию dir3:
[root@waky dir1]# ls ../dir3/file3.txt
../dir3/file3.txt
[root@waky dir1]#
Абсолютный путь:
[root@waky dir1]# ls /root/practice/dir3/file3.txt
/root/practice/dir3/file3.txt
[root@waky dir1]#
Чем отличаются абсолютный и относительный пути?
На примерах вы уже могли понять основные различия между двумя типами пути, давайте для наглядности соберем их в таблице:
Характеристика | Абсолютный путь | Относительный путь |
Начинается с | Корневого каталога / | Текущей директории |
Указывает на | Точное местоположение файла или папки | Местоположение относительно текущей точки |
Используется | Для точного поиска вне зависимости от положения | Для быстрого перемещения внутри структуры |
Как работать с путями в командной строке Linux
Работа с путями — важная часть командной строки. Вот несколько полезных команд:
Команда pwd показывает полный адрес текущей директории:
[root@waky dir1]# pwd
/root/practice/dir1
[root@waky dir1]#
Команда ls – показывает содержимое директории. Можно указать как абсолютный, так и относительный путь:
[root@waky dir1]# ls /root/practice/
dir1 dir3 file0.txt
[root@waky dir1]# ls ~/practice/
dir1 dir3 file0.txt
[root@waky dir1]#
~ – обозначает домашнюю директорию
Команда cd – меняет текущую директорию. Команда понимает несколько специальных символов:
~ домашняя директория текущего пользователя
– предыдущая директория
.. родительская директория
Можно использовать как абсолютные, так и относительные пути:
[root@waky dir1]# cd /root/practice/dir1/dir2/
[root@waky dir2]# cd ../../
[root@waky practice]#
../../ – означает на два уровня вверх, количество .. ограничено лишь количеством вложений.
Подробнее о cd можно прочитать в отдельной статье.
Как правильно использовать пути для навигации
Чтобы легко ориентироваться в системе файлов Linux, запомните основные правила:
- используйте pwd, чтобы знать ваше текущее местоположение.
- для перехода к конкретной папке используйте cd
- если объект рядом используйте относительный путь (быстрее)
- если путь содержит несколько вложений, используйте абсолютный путь (меньше вероятность ошибки)
- чтобы подняться на уровень выше по структуре директорий — используйте ..
- чтобы оставаться внутри одной папки — используйте . что обозначает – текущая директория
- для быстрого возвращения в домашнюю директорию используйте cd ~ или просто cd без пути
- при работе со скриптами и командами в других скриптах или кронах указывайте абсолютные пути (меньше вероятность ошибки)
Почему важно знать разницу между абсолютным и относительным путём?
Понимание этих двух типов путей помогает вам быстрее ориентироваться в системе файлов Linux и избегать ошибок при работе через терминал.
Например:
Если вы хотите запустить программу из любой точки системы — лучше использовать абсолютный путь.
Если вы работаете внутри одной папки или скрипта — удобнее использовать относительные пути.
Также знание разницы помогает писать более универсальные скрипты: например, скрипт может работать независимо от того, где он запущен благодаря использованию относительных путей.
Советы для начинающих: как быстро ориентироваться в путях
Запоминайте основные команды:
pwd — показывает полный путь до текущей директории
ls — показывает содержимое директории
cd — меняет директорию
realpath — показывает полный путь к файлу или каталогу
tree – показывает структуру директории в виде дерева директорий и файлов
Используйте автодополнение Tab:
Начинаете вводить имя файла или папки и нажимаете Tab для автоматического завершения имени.
Обращайте внимание на символы:
/ — разделитель каталогов
. — текущая директория
.. — родительская директория
~ — домашняя папка пользователя
Практикуйтесь:
Постоянно работайте с командами навигации по системе файлов через терминал.
Заключение
Понимание разницы между абсолютным и относительным путём очень важно для эффективной работы через командную строку Linux.
Абсолютные пути дают полное описание местоположения файла начиная от корня системы (/). Относительные же пути указывают местоположение относительно вашей текущей позиции внутри системы файлов.
Знание этих понятий поможет вам быстрее находить нужные файлы, писать скрипты и управлять системой без ошибок.
Если вы будете практиковаться и запомните основные правила работы с путями, навигация по системе станет проще и приятнее!
Краткое резюме
- Абсолютный путь начинается с /, полностью описывает расположение файла или каталога.
- Относительный путь указывается относительно вашей текущей позиции.
- Используйте команды типа pwd, ls, cd, чтобы ориентироваться.
- Автодополнение Tab значительно ускоряет работу.
- Знание разницы помогает избегать ошибок при работе через терминал.