Абсолютні та відносні шляхи – це два способи вказати віртуальну адресу каталогу або файлу в 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