Ln (Unix) — Вікіпедія

ln - Unix програма для створення жорстких або символічних посилань на файли або директорії у файловій системі.

Синтаксис[ред. | ред. код]

 ln [опції] [файл|директорія] [посилання]  ln [опції] [файл1] [файл2] .. [посилання] 

POSIX опції[ред. | ред. код]

  • -f видалити, якщо посилання з таким ім’ям вже існує.
  • -- завершити список опцій.

GNU опції[ред. | ред. код]

  • −d, −F, −−directory дозволити root користувачеві створити жорстке посилання на каталог.
  • −f, −−force перезаписати існуюче посилання.
  • −i, −−interactive спитати чи видаляти вже існуючі посилання з таким ім’ям.
  • −n, −−no−dereference якщо останнім аргументом є вже існуюче символічне посилання на якийсь каталог, ln із −n опцією віднесеться до цього посилання як до звичайного файла (надає можливість перенаправляти символічні посилання на каталоги на щось інше). Якщо останній аргумент є дійсним каталогом (не символічним посиланням на каталог), матиме місце стандартне поводження, коли посилання створюватимуться у цьому каталозі. Лише у випадку коли останнім аргументом стоїть символічне посилання на каталог існують дві можливості інтерпретувати наміри користувача. ln може сприйняти місце призначення за звичайний каталог і створити всередині посилання, або цей аргумент розглядатиметься не як каталог а як звичайний файл. (В останньому випадку, ln видалить або зробить резервну копію файла−символічного посилання перед тим як створити нове символічне посилання.) За замовчуванням місце призначення у вигляді символічного посилання на каталог розглядається як каталог.
  • −s, −−symbolic створити символічне посилання замість жорсткого. Ця опція призведе до повідомлення про помилку на системах що не підтримують символічних посилань.
  • −v, −−verbose надрукувати назву кожного файлу перед створенням посилань.

Приклад[ред. | ред. код]

 $ ln data.txt slink.txt 

Створює жорстке посилання slink.txt на файл data.txt

Створення та видалення символічного посилання[ред. | ред. код]

Нижче показано створення символічного посилання slink.txt:

$ ln -s data.txt slink.txt $ ls -li   969768 -rw-r--r-- 1 alex alex   10 Dec  9 09:11 data.txt   969817 lrwxrwxrwx 1 alex alex    8 Dec  9 09:11 slink.txt -> data.txt 

З наведеного прикладу видно, що символічне (м'яке) посилання розміщене в іншому індексному дескрипторі ніж текстовий файл (969817). Інформація, що зберігається в data.txt доступна через slink.txt:

$ file slink.txt  slink.txt: symbolic link to `data.txt' $ cat slink.txt   ... деякі дані ... 

Якщо видалити текстовий файл data.txt, то slink.txt залишиться, але дані будуть втрачені.

$ rm data.txt $ ls -li    969817 lrwxrwxrwx 1 alex alex    8 Dec  9 09:11 slink.txt -> data.txt $ file slink.txt    slink.txt: broken symbolic link to `data.txt' $ cat slink.txt    cat: slink.txt: No such file or directory 

Жорстке посилання[ред. | ред. код]

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

 $ ln data.txt hlink.txt   $ ls -li     104690 -rw-r--r--   2 sc69876  support      10 Aug 29 18:13 data.txt     104690 -rw-r--r--   2 sc69876  support      10 Aug 29 18:13 hlink.txt    $ rm data.txt    $ ls -li     104690 -rw-r--r--   1 sc69876  support      10 Aug 29 18:13 hlink.txt   $ cat hlink.txt     деякі дані 

Посилання[ред. | ред. код]