Ln (Unix) - Ln (Unix)
| Оригинальный автор (ы) | AT&T Bell Laboratories |
|---|---|
| Разработчики) | Разные Открытый исходный код и коммерческий Разработчики |
| изначальный выпуск | 3 ноября 1971 г. |
| Операционная система | Unix, Unix-подобный, IBM i |
| Тип | Команда |
| Лицензия | coreutils: GPLv3 + |
В пер команда стандартная Команда Unix утилита, используемая для создания жесткая ссылка или символическая ссылка (символическая ссылка) на существующий файл или каталог.[1] Использование жесткой ссылки позволяет несколько имена файлов быть связанным с тем же файл поскольку жесткая ссылка указывает на индекс данного файла, данные которого хранятся на диск. С другой стороны, символические ссылки - это специальные файлы, которые ссылаются на другие файлы с помощью имя.[2]
В пер команда по умолчанию создает жесткие ссылки, а при вызове с командная строка параметр ln -s создает символические ссылки.[3] Наиболее операционные системы предотвратить жесткие ссылки на каталоги от создания, поскольку такая возможность может нарушить структуру файловая система и мешают работе других инженерных сетей.[4] В пер Однако можно использовать команду для создания символических ссылок на несуществующие файлы.[2]
История
ln появился во 2-м выпуске X / Открыть Рекомендации по переносимости.[5] Версия пер в комплекте GNU coreutils был написан Майком Паркером и Дэвидом Маккензи.[6]В пер команда также была перенесена в IBM i Операционная система.[7]
Ссылки
Ссылки позволяют нескольким файлам ссылаться на один и тот же файл, как в случае жесткая ссылка или действовать как указатели к имени файла, как в случае мягкая ссылка. Как жесткие, так и программные ссылки могут быть созданы пер команда. Конкретно,
- Жесткие ссылки, также известные как ссылки, представляют собой объекты, которые связывают имя файла с индекс, а значит, и само содержимое файла.[1] Данный файл на диске может иметь несколько ссылок, разбросанных по иерархия каталогов, причем все ссылки эквивалентны, поскольку все они связаны с одним и тем же индекс.[8] Таким образом, создание ссылки не копирует содержимое файла, а просто приводит к тому, что другое имя ассоциируется с тем же содержимым. Каждый раз, когда создается жесткая ссылка, счетчик ссылок это часть структура inode увеличивается; файл не удаляется, пока его счетчик ссылок не достигнет нуля.[1][9] Однако жесткие ссылки можно создавать только на том же файловая система; это может оказаться недостатком.[10]
- Символические ссылки - специальные файлы, которые при обнаружении во время разрешения пути изменяют разрешение пути чтобы попасть в то место, где находится символическая ссылка. Таким образом, содержание символической ссылки является местом назначения дорожка строка, которую также можно проверить с помощью
ссылка для чтенияутилита командной строки.[11] Символьная ссылка может содержать произвольную строку, которая не относится к расположению существующего файла. Такая символическая ссылка не будет работать до тех пор, пока файл не будет создан в том месте, которое содержится в символической ссылке. Напротив, символическая ссылка на существующий файл не будет работать, если существующий файл будет перемещен в другое место (или переименован).[8]
Технические характеристики
В пер утилита в системах, совместимых с Единая спецификация Unix указан в документе Shell and Utilities (XCU), который является частью Single Unix Specification.[12] В основном идентичный документ является частью POSIX.[5]
В спецификации описаны два способа вызова пер полезность. Конкретно,
- В вызове "одного файла"
перУтилита создает новую жесткую ссылку (запись в каталоге) для исходного файла, указанного висходный файлоперанд в пути назначения, заданномtarget_fileоперанд. Однако если-sуказывается опция, создается символическая ссылка. пер [-fs] [-L|-П] исходный_файл целевой_файл
- В вызове "несколько файлов"
перутилита создает новую жесткую ссылку (запись в каталоге ), или если-sуказывается символическая ссылка для каждого файла, указанного висходный файлоперанд, по пути назначения в существующем каталоге, названном операндомtarget_dir. пер [-fs] [-L|-П] исходный_файл_1 исходный_файл_2 ... целевой_директор
- В вызове "одного файла"
В спецификации также указаны параметры командной строки, которые должны поддерживаться:
-fПринудительно удалить существующие пути назначения, чтобы разрешить ссылку.-LДля каждогоисходный файлоперанд, который называет файл, который является символической ссылкой, создает жесткую ссылку на файл, на который ссылается символическая ссылка.-ПДля каждогоисходный файлоперанд, который называет файл, который является символической ссылкой, создает (жесткую) ссылку на саму символическую ссылку.-sСоздавайте символические ссылки вместо жестких. Если указан параметр -s, параметры -L и -P игнорируются.- Если более чем один из взаимоисключающих вариантов
-Lи-Пуказано, что последняя указанная опция определяет поведение утилиты. - Если
-sопция не указана, и ни-Lни-Пуказан, реализация определяет, какой из-Lи-Ппараметры будут использоваться по умолчанию.
Если ни целевой файл, ни целевой каталог не указаны, ссылки будут созданы в текущем рабочий каталог.
Смотрите также
Рекомендации
- ^ а б c Керниган, Брайан В .; Пайк, Роб (1984). Среда программирования Unix. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. п.59. ISBN 013937681X.
- ^ а б "GNU Coreutils: вызов". gnu.org. Фонд свободного программного обеспечения, Inc.. Получено 7 августа 2015.
- ^ "ln - The Open Group Base Specifications Issue 7". pubs.opengroup.org. IEEE и открытая группа. Получено 7 августа 2015.
- ^ «Почему жесткие ссылки на каталоги в UNIX / Linux запрещены?». unix.stackexchange.com. Получено 7 августа 2015.
- ^ а б - Справочник по командам и утилитам, Единая спецификация UNIX, Выпуск 7 из Открытая группа
- ^ – Linux Общие команды Руководство
- ^ IBM. "Qshell для программирования IBM System i версии 7.2" (PDF). Получено 2020-09-05.
- ^ а б Лусмор, Сандра; Столмен, Ричард М .; МакГрат, Роланд; Орам, Эндрю; Дреппер, Ульрих. Справочное руководство библиотеки GNU C (PDF). Free Software Foundation, Inc. стр. 392. Получено 7 августа 2015.
- ^ «Говоря о UNIX: все дело в индексном узле». ibm.com. IBM developerWorks. Получено 7 августа 2015.
- ^ Bovet, Daniel P .; Чезати, Марко (2005). Понимание ядра Linux (3-е изд.). Бостон, Массачусетс: Интернет-книги по технологиям Safari. п. 14. ISBN 0596005652.
- ^ "readlink (1) - справочная страница Linux". linux.die.net. Получено 7 августа 2015.
- ^ «Единая спецификация UNIX, версия 4 - Обзор». unix.org. unix.org. Получено 7 августа 2015.
внешняя ссылка
- – Linux Пользовательские команды Руководство
- – FreeBSD Общие команды Руководство
- – NetBSD Общие команды Руководство
- – OpenBSD Общие команды Руководство
- – Дарвин и macOS Общие команды Руководство