Запутались в том, какое выражение пути использовать – относительное или абсолютное – в своем следующем проекте? Начните с изучения разницы между ними
Абсолютные и относительные имена путей – это два способа указать виртуальный адрес каталога или файла в Linux. Но в чем разница между этими двумя типами путей, и какой из них следует использовать в командах? Давайте узнаем
Относительные и абсолютные пути в Linux
Если вы когда-либо использовали любую команду Linux, основанную на аргументах, такую как cd или ls, вы знаете, что существует несколько способов указать путь к каталогу или файлу
Вы можете предпочесть обычные выражения пути или, если вы продвинутый пользователь Linux, использовать сложные регулярные выражения для передачи имени файла или каталога программе. В любом случае, в Linux есть только два способа указать путь к каталогу: абсолютный путь и относительный путь
Выражения абсолютного пути
Абсолютный путь всегда начинается с корневого каталога и заканчивается на том каталоге или файле, на который вы хотите указать. При использовании выражения абсолютного пути необходимо ввести все имена подкаталогов, имеющихся в иерархии, которые ведут к конечному местоположению
Например, если вы хотите указать на /myfolder/folder2 внутри каталога /var/www с помощью выражения абсолютного пути, вы используете:
/var/www/myfolder/folder2
где / в начале выражения обозначает корневой каталог в Linux
Выражения относительного пути
Относительный путь, с другой стороны, относится к выражению пути, которое использует другой путь (обычно текущий рабочий каталог) в качестве корня или базы. Как следует из названия, оно является ‘относительным’ по отношению к существующему пути в вашей системе
Например, если вы сейчас находитесь в каталоге /var/www и вам нужно указать путь к /myfolder/folder2, вы используете:
./myfolder/folder2
где.обозначает текущий каталог, в котором вы находитесь. Вы можете изменить текущий рабочий каталог с помощью команды cd
Кроме одинарного периода (.), в выражениях относительного пути также используются двойные периоды (.) для ссылки на родительский каталог
Например, предположим, что вы находитесь в папке /www в следующей структуре каталогов:
/var/www/myfolder/folder2
В приведенном выше выражении пути,.будет обозначать каталог /www, в то время как.будет указывать на каталог /var. Если внутри /var есть еще один каталог /random, к которому вам нужно получить доступ, находясь внутри /var/www, вы используете :
./random
Все просто
Абсолютное противRelative: Какое выражение пути лучше?
Хотя выражения пути могут показаться простыми и неважными для вас, как пользователя настольного компьютера, существуют различные случаи использования, когда использование неправильного имени пути может привести к множеству непрошеных неудобств. Хорошим примером являются веб-серверы
Как веб-разработчик, работающий над проектом, размещенным на сервере Linux, вы нуждаетесь в доступе к файлам внутри каталога проекта. Здесь использование выражений относительного пути является стандартом, поскольку любое изменение имен подкаталогов или доменного имени проекта может привести к нарушению ссылок
Вы можете понять это на простом примере, который лучше понятен пользователям настольных компьютеров. Символ / обозначает корневой каталог в системе Linux. Представьте себе, если вы внезапно измените это и сделаете так, что символ / будет указывать на домашний каталог. Многие из ваших команд, содержащих выражения абсолютного пути, не будут работать, поскольку / теперь переназначен на другой каталог
Еще одно преимущество использования выражений относительного пути – поскольку они относятся к текущему рабочему каталогу, это экономит время, которое вы бы потратили на ввод ненужных символов
Единственная загвоздка здесь – сложность и кривая обучения, связанная с относительными выражениями. Но это также характерно и для выражений абсолютного пути; чтобы стать мастером в использовании абсолютных путей, вам нужно хорошо знать иерархию каталогов Linux. Вы можете использовать команду tree для просмотра всего дерева каталогов Linux и упростить для себя использование выражений абсолютного пути
Понимание иерархии каталогов Linux
Структура каталогов Linux является общей для всех компьютеров с операционными системами на базе Linux. Вы можете использовать такие команды, как ls или tree, чтобы узнать больше о том, как структурированы файлы и папки на вашем компьютере
Комментировать