Абсолютные и относительные пути — это два способа указать виртуальный адрес каталога или файла в Linux. Но в чем разница между этими двумя типами путей и какой из них следует использовать в ваших командах? Давай выясним.
Относительные и абсолютные пути в Linux
Если вы когда-либо использовали какую-либо команду Linux, основанную на аргументах, такую как cd или ls, вы должны знать, что существует несколько способов указать путь к каталогу или файлу.
Вы можете либо предпочесть придерживаться обычных выражений пути, либо, если вы опытный пользователь Linux, использовать сложные регулярные выражения для передачи имени файла или каталога в программу. В любом случае, в Linux есть только два способа указать путь к каталогу: абсолютный путь и относительный путь.
Выражения абсолютного пути
Абсолютный путь всегда начинается с корневого каталога и заканчивается фактическим каталогом или файлом, на который вы хотите указать. При использовании выражения абсолютного пути вам необходимо ввести все имена подкаталогов, присутствующих внутри иерархии, которые ведут к конечному местоположению.
Например, если вы хотите указать на /myfolder/folder2 внутри каталога /var/www с помощью выражения абсолютного пути, вы должны использовать:
/<span class="hljs-keyword">var</span>/www/myfolder/folder2
…где / в начале выражения относится к корневому каталогу в Linux.
Выражения относительного пути
Относительный путь относится к выражению пути, которое использует другой путь (обычно текущий рабочий каталог) в качестве корня или базы. Как следует из названия, это «относительно» существующего пути в вашей системе.
Например, если вы сейчас находитесь в каталоге /var/www и вам нужно указать на /myfolder/folder2, вы должны использовать:
./myfolder/folder2
…куда . обозначает текущий каталог, в котором вы находитесь. Вы можете изменить текущий рабочий каталог с помощью команды cd.
Помимо одиночной точки (.), выражения относительного пути также используют двойные точки (..) для ссылки на родительский каталог.
Например, предположим, что вы находитесь внутри папки /www в следующей структуре каталогов:
/<span class="hljs-keyword">var</span>/www/myfolder/folder2
В приведенном выше выражении пути . будет обозначать каталог /www, тогда как .. будет указывать на каталог /var . Если внутри /var есть другой каталог /random , к которому вам нужно получить доступ, пока вы находитесь внутри /var/www, вы должны использовать:
../random
Просто.
Абсолютный или относительный: какое выражение пути лучше?
Хотя выражения пути могут показаться вам простыми и неважными для вас, как для пользователя настольного компьютера, существуют различные варианты использования, когда использование неправильного имени пути может привести к множеству нежелательных неудобств. Веб-серверы являются хорошим примером.
Как веб-разработчик, работающий над проектом, размещенным на сервере Linux, вам необходимо получить доступ к файлам внутри каталога проекта. Здесь использование выражений относительного пути является стандартом, поскольку любое изменение имен подкаталогов или доменного имени проекта может привести к неработающим ссылкам.
Вы можете понять это на простом примере, который может быть более понятен пользователям настольных компьютеров. Символ / обозначает корневой каталог в системе Linux. Представьте, если вы внезапно измените это и сделаете символ / указывающим на домашний каталог. Многие из ваших команд, содержащих выражения с абсолютным путем, не будут работать, так как / переназначен другому каталогу.
Еще одно преимущество использования выражений относительного пути заключается в том, что, поскольку они относятся к текущему рабочему каталогу, это экономит ваше время, которое вы в противном случае потратили бы на ввод ненужных символов.
Единственная загвоздка здесь — сложность и кривая обучения, связанные с относительными выражениями. Но это также часто встречается в выражениях абсолютного пути; чтобы стать мастером использования абсолютных путей, вам нужно хорошо разбираться в иерархии каталогов Linux. Вы можете использовать команду tree, чтобы просмотреть все дерево каталогов Linux и упростить для себя выражения абсолютного пути.
Понимание иерархии каталогов Linux
Структура каталогов Linux является общей для всех машин, работающих под управлением операционных систем на основе Linux. Вы можете использовать такую команду, как ls или tree, чтобы узнать больше о структуре файлов и папок на вашем компьютере.
Есть еще третий вариант. Употребление переменных окружения. К примеру $HOME/mozilla/firefox