SymLink – как создать символическую ссылку в Linux
Символическая ссылка (еще известная как мягкая ссылка или симлинк) — это особый файл (запись) который указывает на фактическое местоположения файла или папки на диске (как ярлык в Windows).
Символические ссылки постоянно используются для линкования библиотек и часто используются для линкования файлов и папок на удаленной файловой системе примонтированной по NFS.
Команда ln — это стандартная утилита в Linux для создания ссылок.
Ниже вы найдете как создавать символические ссылки на файлы и папки из командной строки в Linux.
Создать Символическую Ссылку в Linux
Легко запомнить: В целом, синтаксис команды ln такой же, как и команд cp или mv , в частности .
Используйте следующий синтаксис для создания символической ссылки в Linux:
$ ln -s
Как вы можете видеть, в создании символических ссылок нет ничего сложного.
Тем не менее, вы должны знать, что в соответствии с документацией в man , по умолчанию, каждая точка назначения () не должна заранее существовать.
Если путь к существует и это файл, вы получите ошибку «ln: failed to create symbolic link ‘’: File exists».
Если путь к это существующая директория, ссылка будет создана внутри этой директории.
Создать Ссылку на Файл
Создать симлинк к файлу:
$ ln -s /путь/к/файлу /путь/к/ссылке
Создать Ссылку на Директорию
Чтобы создать симлинк к папке, используйте точно такой же синтаксис, как и для создания симлинка к файлу.
Создать симлинк к папке:
$ ln -s /путь/к/папке /путь/к/ссылке
Создать символическую ссылку на папку, файл
Чтобы создать символическую ссылку нужно ввести команду в формате:
ln -s /path_to_folder /path_from_folder_link
/path_to_folder /path_from_folder_link
Конечно интереснее создать ссылку более короткой, нежели название папки «пункт назначения», поэтому после названия папки добавляем слеш и пишем название ссылки
ln -s /path_to_folder /path_from_folder/linkName
/path_to_folder /path_from_folder_link /linkName
Если в названии пути есть пробелы, то их необходимо экранировать обратным слешем, допустим у нас есть путь [/sdb/photo/obrabotka/Is my photo], а ссылку мы будем делать из папки [/home/userName] название ссылки [photo], команда будет следующая:
ln -s /sdb/photo/obrabotka/Is\ my\ photo /home/userName/photo
Формат комадны ln следующий:
[команда создания ссылки] [ключ] [куда попадем по ссылке] [откуда пойдем по ссылке]
Команда ln предназначена не только для создания символических ссылок, но и для жестких. В данных примерах мы использовали ключ -s symbolic, указывающий, что ссылка символическая. Возможно вам потребуется создать другие ссылки.
Подробно о ключах и форматах, которые вы можете использовать можно узнать набрав в консоли команду:
ln --help
Символьные ссылки для папок в Windows 7,8,8.1,Vista
Символьная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в файловой системе, для которого не формируются никакие данные, кроме одной текстовой строки с указателем. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). Символьная ссылка занимает ровно столько места в файловой системе, сколько требуется для записи её содержимого (нормальный файл занимает как минимум один блок раздела).
Символьные ссылки можно использовать как удобный инструмент переноса каких либо папок на другие диски или ресурсы. Система при обращении к этому файлу ведет себя точно так же, как если бы это был файл(папка), на который ссылается символьная ссылка. Что на самом деле является очень удобным. К примеру,на рабочем столе можно создать ряд символьных ссылок на часто используемые папки, и копирование файлов в эти папки окажется секундным делом. Теперь рассмотрим как создать символьную ссылку для произвольной папки.
Например, чтобы перенести каталог с письмами и освободить место на диске C, и не перенастраивать при этом почтовые программы, создадим папку на диске D и назовём её mail:
После этого открываем командную строку, для этого жмём Win+R и в открывшемся окне пишем cmd:
В открывшемся окне командной строки нам необходимо создать символьную ссылку для нашей папки. Делается это с помощью команды mklink. В нашем случае, создаем в корне диска С папку с именем maillink , которая будет ссылаться на папку D:\m ail :
mklink /j «c:\ maillink » «d:\mail»
где, mklink — команда создания символьной ссылки /j — атрибут создания соединения для каталога c:\maillink— место создания файла с символьной ссылкой / имя новой символьной ссылки d:\mail — Путь, на который ссылается символьная ссылка.
Жмём клавишу Enter, и, если всё введено правильно, командный интерпретатор Windows сообщит о создании соединения:
Идем на диск C и смотрим на созданную символьную ссылку:
Главное её отличие от обычного ярлыка в том, что если зайти в папку mail link , система будет считать, что вы находитесь именно на диске C в папке maillink, но на самом деле вы будете видеть и работать с файлами, которые находятся на диске D в папке mail.
В зависимости от предназначения символьной ссылки, адрес, имя папки и имя ссылки могут быть различными.
В Windows есть также альтернативный способ для папок:
1) Копируем папку, для которой нам нужно создать символьную ссылку.
2) Идём в каталог:
C:\Users\*имя пользователя*\AppData\Roaming\Microsoft\Windows\Network Shortcuts (Каталог может быть скрытым)
3) Жмём правой клавишей по окну каталога и выбираем «Вставить ярлык». Система создаст символьную ссылку до исходного каталога и теперь её можно перенести в нужное для вас место и переименовать.
Как создавать и удалять симлинки
Обновлено: 12.03.2023 Опубликовано: 25.01.2017
Windows
Работы с символьными ссылками в Windows ведутся из командной строки.
Синтаксис
Симлинк на файл
mklink C:\Users\dmosk\Desktop\cmd.exe C:\Windows\system32\cmd.exe
* в данном примере на рабочем столе пользователя dmosk будет создан симлинк на файл cmd.exe.
Симлинк на директорию
mklink /D «C:\Users\dmosk\Desktop\Сетевая папка» \\dmosk.local\share
* в примере создается симлинк на сетевую папку \\dmosk.local\share
** так как в названии папки есть пробел, путь заключен в кавычки.
Для создания ссылки на папку доступен также ключ /J. Созданная таким образом ссылка будет по некоторым особенностям напоминать жесткую ссылку.
Удалить симлинк
В Windows его можно удалить в проводнике, как обычный файл или папку.
Или использовать командную строку.
Для папки:
rmdir «C:\Users\dmosk\Desktop\Сетевая папка»
Для файла:
Разрешить симлинки в Windows
Если при попытке перейти по символьной ссылке мы получим ошибку «Символическая ссылка не может быть загружена, так как ее тип отключен», открываем командную строку от администратора и вводим команду:
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
Если это не помогло, пробуем создать симлинк с ключом /J.
Linux и FreeBSD
Создание
В системах на базе Linux (например, Ubuntu или CentOS) и FreeBSD симлинк для каталога и файла создаются одинаково:
ln -s /usr/share/nginx/html/index.php /home/dmosk/
ln -s /usr/share/nginx/html /home/dmosk/
* в первом примере создана символьная ссылка в домашней директории пользователя dmosk на файл index.php; во втором — на каталог /usr/share/nginx/html.
Удаление
Также используется одна команда:
Решение возможных проблем
При работе с симлинками мы можем сталкиваться с различными проблемами. Я рассмотрю те, с которыми приходилось сталкиваться мне.
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
Причина: файловая система, на которой мы хотим создать файл не поддерживает симлинки. Посмотреть файловую систему подмонтированных разделов можно командой:
Решение: как правило, решения зависит от используемой файловой системы и ее драйвера. Но, обычно, решения у проблемы нет и нужно искать методы работы без использования символьных ссылок.