Вступ

У файловій системі Linux посилання (links) є важливим механізмом, що дозволяє користувачам і програмам звертатися до файлів і директорій під різними іменами або шляхами. Існують два основних типи посилань: жорсткі (hard links) і символьні (symbolic links або symlinks). Обидва типи посилань мають свої особливості та застосування, що робить їх корисними у різних ситуаціях.
У цій статті ми детально розглянемо, що таке жорсткі та символьні посилання, їхні основні відмінності, переваги та недоліки, а також приклади використання в Linux.

Жорсткі посилання в Linux

У Linux жорсткі посилання (hard links) є важливим і корисним інструментом для управління файлами в файловій системі. Жорстке посилання створює нову назву для існуючого файлу без створення його копії, вказуючи на ті самі дані на диску. Це дозволяє одному і тому ж файлу мати кілька імен у різних місцях файлової системи.

  1. Спільний індексний дескриптор (inode):
    Жорстке посилання і оригінальний файл мають однаковий індексний дескриптор (inode), що означає, що вони посилаються на ті ж самі фізичні дані на диску.
  2. Поділ прав власності:
    Жорсткі посилання не створюють окремих файлів, а отже, всі посилання на один файл мають однакові права доступу і належать одному власнику.
  3. Незалежність від імені:
    Видалення оригінального файлу не впливає на жорстке посилання, оскільки фізичні дані залишаються на диску доти, доки існує хоча б одне посилання.
  4. Обмеження:
    Жорсткі посилання не можуть вказувати на директорії (з метою уникнення циклів) і не можуть створюватися між різними файловими системами.

Створення жорсткого посилання:

Щоб створити жорстке посилання в Linux, використовується команда ln з опцією без жодних додаткових аргументів. Наприклад:

ln source_file target_file

Це створить жорстке посилання target_file, яке вказує на ті ж самі дані, що і source_file.

Приклад cтворення жорстких посиланнь:

Припустимо, у вас є файл file1.txt, і ви хочете створити жорстке посилання file2.txt:

$ echo "Hello, World!" > file1.txt
$ ln file1.txt file2.txt

Тепер і file1.txt, і file2.txt вказують на одні й ті самі дані. Якщо ви зміните вміст будь-якого з цих файлів, зміни будуть видимі в обох файлах.

Перевірка жорстких посилань:

Щоб переконатися, що файли мають однаковий індексний дескриптор (inode), використовуйте команду ls -i:

$ ls -i file1.txt file2.txt
123456 file1.txt
123456 file2.txt

Число 123456 — це індексний дескриптор (inode), який однаковий для обох файлів, що підтверджує наявність жорсткого посилання.

Символьні посилання в Linux

Символьні посилання (symbolic links або symlinks) у Linux є спеціальними файлами, які вказують на інший файл або директорію. Вони діють як перенаправлення, дозволяючи звертатися до файлу або директорії за іншим іменем чи шляхом.

Основні характеристики символьних посилань:

  • Різні індексні дескриптори (inode):
    Символьні посилання мають свій власний індексний дескриптор (inode), відмінний від того, на який вони посилаються.
  • Гнучкість:
    Символьні посилання можуть вказувати на файли або директорії, а також можуть перетинати межі файлових систем.
  • Вказівка на неіснуючі файли:
    Символьні посилання можуть вказувати на файли, які не існують на момент створення посилання. Це корисно для ситуацій, коли файл ще не створено або тимчасово відсутній.
  • Легкість у створенні та видаленні:
    Видалення символьного посилання не впливає на файл або директорію, на які воно вказує. Якщо видалити оригінальний файл, символьне посилання стає “битим” (broken link).

Щоб створити символьне посилання в Linux, використовується команда ln з опцією -s. Наприклад:

ln -s source_file target_link

Це створить символьне посилання target_link, яке вказує на source_file.

Приклад створення символьних посилань:

Припустимо, у вас є файл file1.txt, і ви хочете створити символьне посилання link_to_file1.txt:

$ echo "Hello, World!" > file1.txt
$ ln -s file1.txt link_to_file1.txt

Тепер link_to_file1.txt є символьним посиланням на file1.txt. Якщо ви відкриєте або відредагуєте link_to_file1.txt, зміни будуть відображені в file1.txt.

Перевірка символьних посилань:

Щоб перевірити, чи є файл символьним посиланням, використовуйте команду ls -l:

$ ls -l link_to_file1.txt
lrwxrwxrwx 1 user user 10 Aug  6 12:34 link_to_file1.txt -> file1.txt

Літера l на початку рядка вказує, що це символьне посилання. Стрілка -> показує, на який файл вказує це посилання.

Висновок

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

Від ittutorials

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *