Зміст
Команда ln в операційних системах, розроблених на основі ядра Linux, використовується для створення символічних і жорстких посилань на файли. Від користувача вимагається дотримання синтаксису утиліти, правильне зазначення опцій і розташування файлів. Сьогодні ми б хотіли розповісти не тільки про дію цієї команди, але і детально описати два види згаданих вище лінків, оскільки вони кардинально різні і застосовні в певних ситуаціях. Звичайно, не обійдеться і без прикладів інструменту ln .
Посилання на файл у Linux
Більшість користувачів комп'ютерів хоча б раз стикалися з роботою в платформі Windows. Там покажчиками на файли виступають ярлики. Після звернення до такого об'єкту відбувається автоматичне перенаправлення на оригінальний файл. У Linux це виконують спеціальні посилання, що створюються користувачем вручну. Було розроблено два типи таких елементів &8212; символічні та жорсткі. Вони мають значні відмінності, тому варто розглянути кожен тип більш детально.
Символічні посилання
Символічне посилання &8212; файл певного типу, який виступає в ролі Лінка на інший об'єкт &8212; файл будь-якого формату або певний каталог. Зазвичай такі об'єкти називають цільовими. Іноді ви можете помітити, що такий тип посилань називають soft links або Sym-link. Такий елемент не містить в собі даних мети, а лише виступає покажчиком, тобто є повною копією ярлика з Віндовс. Всередині symbolic link знаходиться тільки шлях. Ніхто не забороняє вам створювати багато подібних посилань з різними іменами, але однаковим цільовим об'єктом. Зв'язок між двома складовими називається м'якою, оскільки при видаленні посилання цільової файл ніяким чином не страждає. Однак при видаленні файлу посилання стає неробочий. Вона зберігається на диску, але вказаний в ній шлях веде вже до неіснуючого об'єкту.
На зображенні вище ви бачите схематичне зображення роботи такого ланцюга. Посилання звертається до файлу, а той вже надає доступ до зберігаються в ньому даними. Важливо розуміти, що це посилання можна переміщати в будь-яке місце на комп'ютері, від цього не залежить її працездатність, адже вона буде переходити по тому ж шляху, який був вказаний при створенні.
Жорсткі посилання
З жорсткими посиланнями все трохи складніше. Вони, по суті, синоніми файлу, але при цьому не його копії. При створенні жорсткої посилання буде згенерований ще один покажчик на елемент. У файловій системі такі об'єкти визначаються як ще один файл, тому при створенні їх в одній і тій же директорії з метою не можна вказувати однакове з нею ім'я. Всі жорсткі лінки на файл повинні знаходитися в одній ФС і не можуть бути присвоєні каталогу або неіснуючому елементу. На скріншоті нижче ви бачите схематичне взаємодія такого ланцюга.
Важливо зазначити, що посилання матиме точно такий самий ідентифікатор (inode), як цільовий файл. Як відомо, у всіх об'єктів свої унікальні номери. Через це між ними буде різниця лише в іменах. Всі права, власник і дати змін зберігаються. Можна сказати, що жорстка посилання &8212; ще одна назва для об'єкта. При видаленні цільового файлу Лінк все одно буде зберігати інформацію, яка знаходилася в ньому, оскільки на вміст залишається ще один покажчик.
Створення посилань
Перейдемо від теорії до практики і поговоримо про головну тему статті &8212; команді ln . Як Ви вже знаєте, вона використовується для створення двох типів посилань. Однак варто зауважити, що деякі Файлові менеджери мають вбудовану функцію по додаванню символічного Лінка. Для цього потрібно клацнути ПКМ по файлу або папці і вибрати пункт &171; створити посилання&187; , &171;Create Link&187; або &171;Make Link&187; . Тоді soft link буде поміщений в цей же каталог, а ви можете перемістити його в будь-яке інше місце на накопичувачі.
Для початку варто згадати Додаткові дії, які часто стають корисними при здійсненні різних дій з файлами. Важливо знати шлях до цільового об'єкта або вміти його визначити. Що стосується визначення, відбувається воно так:
- Запустіть файловий менеджер будь-яким зручним методом, наприклад, перейшовши в домашню папку через значок на робочому столі.
- Тут відшукайте в каталогах необхідний файл або папку, через правий клік миші виберіть пункт &171; властивості&187; .
- У розділі &171; Основні & 187;
Ви знайдете розташування батьківської папки, додайте до неї назву елемента, щоб отримати повний шлях, наприклад,
/home/user/folder/file_name
. - Якщо ви збираєтеся створювати кілька лінків для файлів з однієї директорії, радимо перейти до неї через &171;Термінал&187;
. Робиться це шляхом введення
cd /home/user/folder
. Така дія дозволить вказувати тільки відносний шлях до об'єкта.
Символічне посилання
Розглянемо утиліту ln в дії. Почнемо зі створення символічного посилання на файл. Для цього скористайтеся стандартною консоллю і виконайте такі дії:
- Впишіть
ln -s file slink
, де file & 8212; ім'я або повний шлях до файлу або Директорії, а slink &8212; назва посилання. Вона буде поміщена в той же каталог, де і знаходиться цільовий об'єкт. - Введіть та активуйте
ls -li
, щоб побачити інформацію з приводу знаходяться в каталозі об'єктів. Символічна посилання виділена окремим кольором, а через -> вказана її мета. Як бачите, файл і посилання мають різні ідентифікатори та права. - Для наочності видалимо цільової елемент через
rm
. - Після повторного перегляду списку вмісту, ви побачите, що символічний Лінк тепер зіпсований і не працює, оскільки цільовий об'єкт був видалений.
Вище ви могли помітити, що для перегляду вмісту папок використовувалася стандартна команда ls . Якщо є бажання ознайомитися з її дією більш детально, зверніть увагу на наш окремий матеріал нижче.
Читайте також: приклади команди ls в Linux
Жорстка посилання
Створення жорсткого посилання дуже схоже на тип, який ми розглянули вище. Єдина відмінність полягає у відсутності опції -s . Тоді вся процедура матиме приблизно такий вигляд:
- Введіть та активуйте
ln file hlink
. - Використовуйте знову
ls -li
, щоб переконатися в наявності зв'язки жорсткого Лінка і файлу. Як бачите, вони мають однаковий ідентифікатор, права та інші метадані. Різні лише імена. - При видаленні самого файлу і перегляді вмісту ви побачите, що посилання залишилася робочої, але при цьому пропала зв'язка.
- Залучіть команду
cat
, щоб переглянути вміст жорсткого посилання. У консолі відобразиться та ж інформація, що спочатку зберігалася у вихідному файлі.
Інформація буде доступна до тих пір, поки не видаляться всі вказівники на неї (вихідний файл і всі жорсткі посилання). Команда cat , що використовується в останньому пункті, відповідає за перегляд вмісту файлів. Детальний опис всіх її можливостей шукайте в статті далі.
Читайте також: приклади команди cat в Linux
Вище Ви були ознайомлені не тільки зі стандартною командою ln , але також дізналися про два типи доступних посилань на об'єкти в Linux. Звичайно, частіше бувають задіяні символічні лінки, але жорсткі теж іноді стають корисними. Про інших популярних командах в Лінукс можете дізнатися з нашого окремого матеріалу.
Читайте також: Часто використовувані команди в «терміналі» Linux