Символические ссылки

В данном разделе содержится информация о символических ссылках — симлинках.

Общие сведения

Система поддерживает символические ссылки (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.
Предыдущая
Следующая