Ln

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

ln - команда UNIX, що встановлює зв'язок між файлом і ім'ям файла.

В Unix існує два види посилань, зазвичай званих жорсткі посилання та символьні, або "м'які" посилання. Жорстка посилання є всього лише ім'ям якого файлу. (Таким чином, файл може мати кілька імен. Він буде вилучений з диска тільки тоді, коли буде видалено останнє з його імен. Кількість імен, які має файл, показує команда Ls (1). Немає такого поняття, як справжнє ім'я: всі імена мають однаковий статус. Зазвичай, але не обов'язково, всі імена файла знаходяться на файловій системі, яка також містить і його дані.)

М'які посилання (або символьна посилання, або symlink) повністю відрізняється від жорсткої посилання: вона є маленьким спеціальним файлом, який містить шлях до файлу. Таким чином, м'яка посилання може вказувати на файли, які знаходяться на інших файлових системах (наприклад, змонтованих по NFS з іншої машини) і не потребує наявності того файлу, на який вона вказує. Коли відбувається спроба доступу (з допомогою системних викликів open (2) або stat (2)), ядро ​​операційної системи замінює посилання на той шлях, який вона містить. (Проте, команда rm (1) і системний виклик unlink (2) видаляють саму посилання, а не файл, на який вона вказує. Для читання стану символьної посилання, а також імені файлу, на який вона вказує, використовуються системні виклики lstat (2) і readlink (2). Для інших системних викликів, які залежать і розрізняються для різних операційних систем, може здійснюватися робота як з самої символьної посиланням, так і з файлом, на який вона вказує.)

Формат команди:

ln файл1 файл2

  1. Створюється «жорстка» посилання (hard link)

ln-s файл1 файл2

  1. Створюється «символічна» ссилка (symbolic link)

Ця команда створює жорстку посилання на файл «файл1», яка буде виглядати як «файл2». Таким чином для файлової системи вихідний файл «файл1» і посилання на нього «файл2», насправді фізично будуть одним і тим же файлом. Жорсткі посилання не можуть вказувати на файли в інших файлових системах.

Якщо ви створюєте символічне посилання (використовуючи ключ «-s»), то при цьому файлу «файл1» може і не існувати. Символічна посилання з ім'ям «файл2» все одно буде створена.