Используемые термины: Симлинк , Windows , Linux .
Windows
Работы с символьными ссылками в Windows ведутся из командной строки.
Синтаксис
mklink <имя создаваемого симлинка> <на что ведет симлинк>
Симлинк на файл
mklink C:UsersremontkaDesktopcmd.exe C:Windowssystem32cmd.exe
* в данном примере на рабочем столе пользователя remontka будет создан симлинк на файл cmd.exe .
Симлинк на директорию
mklink /D «C:UsersremontkaDesktopСетевая папка» \remontka.localshare
* в примере создается симлинк на сетевую папку \remontka.localshare
** так как в названии папки есть пробел, путь заключен в кавычки.
Для создания ссылки на папку доступен также ключ /J . Созданная таким образом ссылка будет по некоторым особенностям напоминать жесткую ссылку .
Удалить симлинк
В Windows его можно удалить в проводнике, как обычный файл или папку.
Или использовать командную строку.
Для папки:
rmdir «C:UsersremontkaDesktopСетевая папка»
Для файла:
del C:UsersremontkaDesktopcmd.exe
Разрешить симлинки в Windows
Если при попытке перейти по символьной ссылке мы получим ошибку «Символическая ссылка не может быть загружена, так как ее тип отключен», открываем командную строку от администратора и вводим команду:
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
Если это не помогло, пробуем создать симлинк с ключом /J.
Linux и FreeBSD
Создание
Общий синтаксис
ln -s <на какой существующий объект будет вести> <создаваемый симлинк>
В системах на базе Linux (например, Ubuntu или CentOS ) и FreeBSD симлинк для каталога и файла создаются одинаково:
ln -s /usr/share/nginx/html/index.php /home/remontka/
ln -s /usr/share/nginx/html /home/remontka/
* в первом примере создана символьная ссылка в домашней директории пользователя remontka на файл index.php ; во втором — на каталог /usr/share/nginx/html .
Удаление
Также используется одна команда:
rm /home/remontka/index.php
Решение возможных проблем
При работе с симлинками мы можем сталкиваться с различными проблемами. Я рассмотрю те, с которыми приходилось сталкиваться мне.
ln: failed to create symbolic link … Function not implemented
При попытке создать симлинк мы можем получить ошибку Function not implemented , например:
ln: failed to create symbolic link ‘/etc/pve/nodes/pve/fullchain.pem’: Function not implemented
Причина: файловая система, на которой мы хотим создать файл не поддерживает симлинки. Посмотреть файловую систему подмонтированных разделов можно командой:
df -T
Решение: как правило, решения зависит от используемой файловой системы и ее драйвера. Но, обычно, решения у проблемы нет и нужно искать методы работы без использования символьных ссылок.