Символические ссылки
В данном разделе содержится информация о символических ссылках — симлинках.
Общие сведения
Система поддерживает символические ссылки (soft links
) в Кипарисе. Такая ссылка представляет собой узел типа link
, ссылающийся на другой объект target
.
Путь к нему указывается при создании ссылки. В процессе вычисления адреса для выполнения операции все обращения к узлу-ссылке автоматически переадресуются к целевому объекту.
Ссылка на целевой объект зависит от его пути.
Если целевой путь будет удален или перемещен, ссылка перестанет действовать. Вы получите сообщение вида Link target does not exist
.
Узел-ссылка не занимает дискового пространства. Его атрибут resource_usage/disk_space
равен 0. Поэтому лимит на дисковую квоту не может быть превышен из-за создания узлов-ссылок.
При этом каждая ссылка представляет собой узел и занимает один node
, поэтому можно превысить лимит nodes
.
Создание
Чтобы создать символическую ссылку, используйте команду link
. В качестве аргументов сначала укажите адрес целевого узла, затем адрес узла ссылки:
CLI
yt link //tmp/target_table //tmp/target_table_link
Ссылка может вести к произвольным узлам и объектам.
Например, к поддереву //tmp
в домашней директории:
CLI
yt link //tmp //home/username/my_own_tmp
Примечание
Относительные ссылки не поддерживаются.
Переадресация
Автоматическая переадресация от узла-ссылки к целевому объекту работает с рядом исключений:
- Команды
remove
,create
иlink
для целевого пути обслуживаются в узле-ссылке. Например, при удалении//tmp/target_table_link
пользователь не повредит содержимое таблицы//tmp/target_table
. - Команда
move
сработает на целевом узле и узел-ссылка станет недействительной.
Чтобы отключить переадресацию, добавьте в конец имени ссылки маркер &
(амперсанд).
Например, это позволяет изучать атрибуты узла-ссылки, а не целевого объекта.
Так, чтобы получить путь целевого объекта, выполните yt get //tmp/target_table_link&/@
. Путь будет указан в атрибуте target_path
.
Системные атрибуты
Помимо атрибутов, общих для всех типов узлов, узлы-ссылки содержат атрибуты:
Имя | Тип | Значение |
---|---|---|
target_path |
string |
Путь до объекта, на который указывает ссылка. |
broken |
bool |
true , если ссылка указывает на несуществующий объект, иначе false . |