Назва

ln - створює посилання на інший файл

Зведення

ln [опції] джерело [місцепризначення]
ln [
опції] джерело(a)... [каталог_]

Опції POSIX: [-f] [--]

Опції GNU (коротка форма): [-bdfinsvF] [-S СУФІКС] [-V {numbered,existing,simple}] [--help] [--version] [--]

Опис

Існує дві концепції про посилання в Юніксах, відомі як жорсткі посилання і і символічні. Жорстке посилання є всього лиш іншим іменем для того самого файла (файл може мати декілька різних імен і буде повністю видалено з диску тільки, коли останню з його назв усунено). Кількість імен файла можна дізнатися за допомогою ls(1). Не існує такого поняття як "оригінальна назва", всі назви файла мають однаковий статус. Як правило, хоч не обов'язково, всі імена файла знаходяться на тій самій файловій системі, що утримує його дані.

Символічне (м'яке) посилання - це зовсім іншим створінням, - це невеликий спеціальний файл що утримує шлях до іншого файла. Таким чином, символічні посилання можуть вказувати на файли що знаходяться на інших файлових системах (навіть NFS монтованих з інших машин). Символічні посилання можуть навіть вказувати на неіснуючий файл. Під час доступу до символічного посилання (за допомогою open(2) або stat(2) системних викликів), ядро операційної системи заміняє його на вказаний там шлях до дійсного файла. (Але у випадку rm(1) або ?unlink(2), видаляється лише посилання а не файл на який воно вказує). Існують спеціальні системні виклики, такі як ?lstat(2) і ?readlink(2), які зчитують статус символічного посилання і файла на яке воно вказує. Щодо інших системних викликів, вони різняться в залежності від операційної системи у тому чи відносяться їхня дія до посилання, чи до дійсного файла.)

ln створює посилання між файлами. За замовчуванням - жорсткі, якщо надати -s опцію - символічні.

Якщо аргументом є лише один файл, ln створить посилання до цього файла у поточній директорії (за умови що ви і файл знаходитесь у різних директоріях). Назва посилання у такому випадку буде співпадати із назвою оригінального файла. (Це являється GNU розширенням.) У іншому випадку, якщо останнім аргументом команди є існуючий каталог, ln створить посилання на кожний файл вказаний як джерело(а) у вказаному каталозі. Назви посилань також будуть співпадати з назвами оригінальних файлів файлів (подивіться також опис --no-dereference опції нижче). У випадку ж коли дві назви файлів надано як аргумент, це повинно створити файл-посилання (місцепризначення) на вже існуюче джерело_. Вам видасть помилку у випадку якщо останнім аргументом не є каталог і більше ніж дві назви файлів надано як аргумент.

За замовчуванням ln не вилучає вже існуючих файлів або символічних посилань. (Це може використовуватись для блокувальних цілей, команда матиме успіх лише якщо місцепризначення_ з таким іменем ще не існує.) Але можна заставити її це здійснити завдяки опції -f.

На сучасних втіленнях, якщо і є можливим створити жорстке посилання на каталог, це може здійснити лише root користувач. POSIX забороняє системному виклику ?link(2) і знаряддю ln створювати жорсткі посилання на каталоги (зате не згадує про жорсткі посилання поза межами файлової системи.)

Опції POSIX

-f : Видалити, якщо файл (місцепризначення_) з таким ім'ям вже існує.

-- : Завершити список опцій.

Опції GNU

-d, -F, --directory : Дозволити root користувачеві створити жорстке посилання на каталог.

-f, --force : Видалити, якщо файл (місцепризначення_) з таким ім'ям вже існує.

-i, --interactive : Спитати чи видаляти вже існуючі файли з таким ім'ям.

-n, --no-dereference : Якщо останнім аргументом є вже існуюче символічне посилання на якийсь каталог, ln із опцією -n поставиться до цього посилання як до звичайного файла (надає можливість перенаправляти символічні посилання на каталоги на щось інше).

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

-s, --symbolic : Утворити символічне посилання замість жорсткого. Ця опція призведе до повідомлення про помилку на системах, які не підтримують символічних посилань.

-v, --verbose : Видрукувати назву кожного файлу перед створенням посилань.

Опції резервного копіювання GNU

Версії GNU таких програм як cp(1), mv(1), ln, install(1) і patch(1) можуть робити резервну копію файла, що буде перезаписано, змінено або видалено. Створення копій вказується опцією -b (--backup). Їхня назва вказується за допомогою опції -V. У випадку, якщо бажаним є збіг з назвами оригіналів, тільки додано суфікс, використавується опція -S.

-b, --backup : Створити резервну копію файлів, які будуть перезаписані або видалені.

-S СУФІКС, --suffix=СУФІКС : Додати СУФІКС до кожного резервного файла. Якщо ця опція не вказана, тоді застосовується значення змінної середовища SIMPLE_BACKUP_SUFFIX. А якщо змінну SIMPLE_BACKUP_SUFFIX не задано, використовуватиметься стандартний суфікс `~'.

-V МЕТОДА, --version-control=МЕТОДА : Вказує методу за якою відбуватиметься присвоєння назв резервним копіям. Аргумент МЕТОДА може становити numbered' (абоt'), existing' (абоnil'), або ж never' (абоsimple'). Якщо ця опція не вказана, використовуватиметься значення змінної середовища VERSION_CONTROL. У разі незаданої змінної VERSION_CONTROL, методою іменування за поза вибором є `existing'.

Ця опція відповідає змінній Emacs `version-control'. Чинними методами є (можна використовувати також абревіатури):

t, numbered : Завжди створювати нумеровані копії.

nil, existing : Створювати нумеровані копії файлів що вже мають копії і звичайні копії для решти.

never, simple : Завжди створювати прості копії.

Стандартні опції GNU

виходить з успішним статусом завершення.

--help : Виводить поміч по використанню програми на стандартний вивід і

виводу і виходить з успішним статусом завершення.

--version : Виводить інформацію про версію програми на стандартний пристрій

- : Завершує список опцій.

Середовище

Змінні LANG, LC_ALL, LC_TYPE та LC_MESSAGES залишаються чинними.

Відповідність стандартам

POSIX 1003.2. Тим не менш, POSIX 1003.2 (1996) не розглядає символічні посилання. Символічні посилання були привнесені BSD і не зустрічаються у System V 3-го релізу (і старших) системах.

Дивіться також

ls(1), rm(1), ?link(2), ?lstat(2), open(2), ?readlink(2), stat(2), ?unlink(2)

Примітки

Ця сторінка описує ln що постачається з пакетом fileutils-4.0; інші версії можуть трохи відрізнятись. Поправки і доповнення надсилайте на aeb@cwi.nl. Доповіді про вади програми - на fileutils-bugs@gnu.ai.mit.edu.


Переклав Віталій Цибуляк