Символические ссылки
В данном разделе содержится информация о символических ссылках — симлинках.
Общие сведения
Система поддерживает символические ссылки (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 . |