Метка: # FreeBSD # Linux # Ubuntu # UNIX # Windows

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

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

    Windows

    Работы с символьными ссылками в Windows ведутся из командной строки.

    Синтаксис

    mklink <имя создаваемого симлинка> <на что ведет симлинк>

    Симлинк на файл

    mklink C:UsersdmoskDesktopcmd.exe C:Windowssystem32cmd.exe

    * в данном примере на рабочем столе пользователя dmosk будет создан симлинк на файл cmd.exe.

    Симлинк на директорию

    mklink /D "C:UsersdmoskDesktopСетевая папка" \dmosk.localshare

    * в примере создается симлинк на сетевую папку \dmosk.localshare
    ** так как в названии папки есть пробел, путь заключен в кавычки.

    Для создания ссылки на папку доступен также ключ /J. Созданная таким образом ссылка будет по некоторым особенностям напоминать жесткую ссылку.

    Удалить симлинк

    В Windows его можно удалить в проводнике, как обычный файл или папку.

    Или использовать командную строку.

    Для папки:

    rmdir "C:UsersdmoskDesktopСетевая папка"

    Для файла:

    del C:UsersdmoskDesktopcmd.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/dmosk/

    ln -s /usr/share/nginx/html /home/dmosk/

    * в первом примере создана символьная ссылка в домашней директории пользователя dmosk на файл index.php; во втором — на каталог /usr/share/nginx/html.

    Удаление

    Также используется одна команда:

    rm /home/dmosk/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

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