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 Общие команды Руководство –