Команда ln в Linux

Команда ln в операційних системах, розроблених на основі ядра Linux, використовується для створення символічних і жорстких посилань на файли. Від користувача вимагається дотримання синтаксису утиліти, правильне вказівку опцій і розташування файлів. Сьогодні ми б хотіли розповісти не тільки про дію цієї команди, але і детально описати два види згаданих вище лінків, оскільки вони кардинально різні і застосовні в певних ситуаціях. Звичайно, не обійдеться і без прикладів інструменту ln.

Посилання на файл в Linux

Більшість користувачів комп'ютерів хоча б раз стикалися з роботою в платформі Windows. Там покажчиками на файли виступають ярлики. Після звернення до такого об'єкта відбувається автоматичне перенаправлення на оригінальний файл. У Linux це виконують спеціальні посилання, що створюються користувачем вручну. Було розроблено два типи таких елементів - символічні і жорсткі. Вони мають значні відмінності, тому варто розглянути кожен тип більш детально.

символічні посилання

Символічна посилання - файл певного типу, який виступає в ролі линка на інший об'єкт - файл будь-якого формату або певний каталог. Зазвичай такі об'єкти називають цільовими. Іноді ви можете помітити, що такий тип посилань називають soft links або sym-link. Такий елемент не містить в собі даних мети, а лише виступає покажчиком, тобто є повною копією ярлика з Віндовс. Усередині symbolic link знаходиться тільки шлях. Ніхто не забороняє вам створити безліч подібних лінків з різними іменами, але одним і тим же цільовим об'єктом. Зв'язок між двома складовими називається м'якою, оскільки при видаленні посилання цільової файл ніяким чином не страждає. Однак при видаленні файлу посилання стає неробочий. Вона зберігається на диску, але вказаний в ній шлях веде вже до неіснуючого об'єкту.

Схематичне зображення символічного посилання в Linux

На зображенні вище ви бачите схематичне уявлення роботи такого ланцюга. Посилання звертається до файлу, а той вже надає доступ до зберігаються в ньому даних. Важливо розуміти, що це посилання можна переміщати в будь-яке місце на комп'ютері, від цього не залежить її працездатність, адже вона буде переходити по тому ж шляху, який був зазначений при створенні.

жорсткі посилання

З жорсткими посиланнями справи йдуть трохи складніше. Вони, по суті, синоніми файлу, але при цьому не його копії. При створенні жорсткої посилання буде згенерований ще один покажчик на елемент. У файлової системи такі об'єкти визначаються як ще один файл, тому при створенні їх в одній і тій же директорії з метою не можна вказувати однакову з нею ім'я. Всі жорсткі лінки на файл повинні перебувати в одній ФС і не можуть бути присвоєні каталогу або неіснуючого елементу. На скріншоті нижче ви бачите схематичне взаємодія такого ланцюга.

Схематичне зображення жорсткої посилання в Linux

Важливо відзначити, що лінк буде мати точно такий же ідентифікатор (inode), як і цільової файл. Як відомо, у всіх об'єктів свої унікальні номери. Через це між ними буде відмінність тільки в іменах. Всі права, власник і дати змін зберігаються. Можна сказати, що жорстка посилання - ще одна назва для об'єкта. При видаленні цільового файлу лінк все одно буде зберігати інформацію, яка перебувала в ньому, оскільки на вміст залишається ще один покажчик.

створення посилань

Перейдемо від теорії до практики і поговоримо про головну тему статті - команді ln. Як ви вже знаєте, вона використовується для створення двох типів посилань. Однак варто зауважити, що деякі файлові менеджери мають вбудовану функцію по додаванню символічного линка. Для цього потрібно клацнути ПКМ по файлу або папці і вибрати пункт «Створити посилання», «Create Link» або «Make Link». Тоді soft link буде поміщений в цей же каталог, а ви можете перемістити його в будь-яке інше місце на накопичувачі.

Для початку варто згадати додаткові дії, які часто стають корисними при здійсненні різних дій з файлами. Важливо знати шлях до цільового об'єкту або вміти його визначити. Що стосується визначення, відбувається воно так:

  1. Запустіть файловий менеджер будь-яким зручним методом, наприклад, перейшовши в домашню папку через значок на робочому столі.
  2. Відкриття файлового менеджера для подальшого переходу в папку Linux

  3. Тут знайдете в каталогах необхідний файл або папку, через правий клік миші виберіть пункт «Властивості».
  4. Відкриття вікна властивостей файлу для визначення батьківської папки в Linux

  5. У розділі «Основні» ви знайдете розташування батьківської папки, додайте до нього назву елемента, щоб отримати повний шлях, наприклад, /home/user/folder/file_name .
  6. Визначення батьківської папки файлу через файловий менеджер в Linux

  7. Якщо ви збираєтеся створювати кілька лінків для файлів з однієї директорії, радимо перейти до неї через «Термінал». Робиться це шляхом введення cd /home/user/folder . Така дія дозволить вказувати тільки відносний шлях до об'єкта.
  8. Перехід по певному розташуванню через cd в Linux

символічна посилання

Розглянемо утиліту ln в дії. Почнемо зі створення символічного посилання на файл. Для цього скористайтеся стандартною консоллю і виконайте такі дії:

  1. Впишіть ln -s file slink , де file - ім'я або повний шлях до файлу або директорії, а slink - назва посилання. Вона буде поміщена в той же каталог, де і знаходиться цільовий об'єкт.
  2. Створення символічного посилання в операційній системі Linux

  3. Введіть і активуйте ls -li , щоб побачити інформацію з приводу знаходяться в каталозі об'єктів. Символічна посилання виділена окремим кольором, а через -> вказана її мета. Як бачите, файл і лінк мають різні ідентифікатори і права.
  4. Перегляд залежності символічного посилання і файла в Linux

  5. Для наочності видалимо цільової елемент через rm .
  6. Видалення цільового файлу в операційній системі Linux

  7. Після повторного перегляду списку вмісту, ви побачите, що символічний лінк тепер зіпсований і не працює, оскільки цільовий об'єкт був видалений.
  8. Перегляд символічного посилання після видалення цільового файлу Linux

Вище ви могли помітити, що для перегляду вмісту папок використовувалася стандартна команда ls. Якщо є бажання ознайомитися з її дією більш детально, зверніть увагу на наш окремий матеріал нижче.

Читайте також: Приклади команди ls в Linux

жорстка посилання

Створення жорсткої посилання багато в чому схоже з тим типом, який ми розглянули вище. Єдина відмінність полягає у відсутності опції -s. Тоді вся процедура буде мати приблизно такий вигляд:

  1. Введіть і активуйте ln file hlink .
  2. Створення жорсткої посилання через термінал в Linux

  3. Знову використовуйте ls -li , щоб переконатися в наявності зв'язки жорсткого линка і файлу. Як бачите, вони мають однаковий ідентифікатор, права і інші метадані. Різні лише імена.
  4. Перегляд вмісту папки з жорсткою посиланням в Створення жорсткої посилання через термінал в Linux

  5. При видаленні самого файлу і перегляді вмісту ви побачите, що посилання залишилася робочої, але при цьому пропала зв'язка.
  6. Перевірка залежностей після видалення цільового файлу жорсткої посилання в Linux

  7. Задіюйте команду cat , щоб переглянути вміст жорсткого линка. В консолі відобразиться та ж інформація, що спочатку зберігалася в вихідному файлі.
  8. Перегляд вмісту жорсткої посилання в Linux

Інформація буде доступна до тих пір, поки не втечуть всі покажчики на неї (вихідний файл і все жорсткі посилання). Команда cat, яка використовується в останньому пункті, відповідає за перегляд вмісту файлів. Детальний опис всіх її можливостей шукайте в статті далі.

Читайте також: Приклади команди cat в Linux

Вище ви були ознайомлені не тільки зі стандартною командою ln, а й дізналися про двох типах доступних посилань на об'єкти в Linux. Звичайно, частіше бувають задіяні символічні лінки, але жорсткі теж іноді стають корисними. Про інших популярних командах в Лінукс можете дізнатися з нашого окремого матеріалу.

Читайте також: Часто використовувані команди в «Терміналі» Linux