Как создавать и удалять симлинки

Используемые термины: Симлинк , Windows , Linux .

Логотип Windows 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 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

Решение: как правило, решения зависит от используемой файловой системы и ее драйвера. Но, обычно, решения у проблемы нет и нужно искать методы работы без использования символьных ссылок.

EnglishRussianUkrainian