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

Обновлено: 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
Причина: файловая система, на которой мы хотим создать файл не поддерживает симлинки. Посмотреть файловую систему подмонтированных разделов можно командой:
Решение: как правило, решения зависит от используемой файловой системы и ее драйвера. Но, обычно, решения у проблемы нет и нужно искать методы работы без использования символьных ссылок.
Как удалить символическую ссылку в Linux?
Символическая ссылка, также известная как символическая ссылка, представляет собой файл, который указывает на другой файл. Файл указывает на может быть в том же или другом каталоге. Это похоже на ярлыки в ОС Windows.
В сегодняшней статье мы расскажем, как удалить символическую ссылку в Linux. Обратите внимание, что удаление символической ссылки не влияет на файл, на который она указывает.
Перед удалением файла вы можете проверить, является ли он символической ссылкой, с помощью команды ls -l. Он также покажет вам файл или каталог, на который он указывает.
l в разрешениях (lrwxrwxrwx) подтверждает, что это символическая ссылка.

Удалить символическую ссылку с помощью команды unlink
Команда unlink используется для удаления одного файла из файловой системы. Чтобы удалить символическую ссылку в Linux, введите команду unlink , затем имя символической ссылки и нажмите Enter:
$ sudo unlink symbolic_link
Замените symbolic_link именем символической ссылки, которую вы хотите удалить. После этого вы можете использовать команду ls -l, чтобы убедиться, что символическая ссылка удалена.

Удалите символическую ссылку, указывающую на каталог, не используйте косую черту после имени каталога. Допустим, мы хотим удалить каталог символической ссылки с именем Docs, как показано на следующем снимке экрана:

Команда для удаления каталога символической ссылки будет:
$ sudo unlink Docs

Удалите символическую ссылку с помощью команды rm
Команду rm также можно использовать для удаления символической ссылки. Чтобы удалить символическую ссылку в Linux, введите команду rm, затем имя символической ссылки и нажмите Enter:
$ sudo rm zoom
После этого вы можете использовать команду ls -l, чтобы убедиться, что символическая ссылка удалена.

Вы также можете использовать флаг -i с командой rm для запроса подтверждения.
$ sudo rm -i zoom

При удалении символической ссылки, указывающей на каталог, не используйте косую черту после имени каталога. Допустим, мы хотим удалить каталог символической ссылки с именем Docs, как показано на следующем снимке экрана:

Команда для удаления каталога символической ссылки будет:
$ sudo rm Docs
После этого вы можете использовать команду ls -l, чтобы подтвердить, была ли удалена символическая ссылка.

Вот и все! В этом посте вы научились удалять символическую ссылку в ОС Linux с помощью команд unlink и rm. При удалении символической ссылки обязательно удаляйте только саму символическую ссылку, а не файл или каталог, на который она ссылается.
Все права защищены. © Linux-Console.net • 2019-2023
Как создать и удалить симлинки (Symlinks) Linux
В этой статье мы покажем, как создать и удалить симлинк (Symlinks) Linux. Все легко и просто и этот пост ориентирован на новичков, хотя и продвинутым пользователям тоже подойдет, чтобы освежить их знания.
Что такое симлинки (Symlinks)
Симлинк (Symlink) — это символическая ссылка в операционных системах Unix/Linux. Представляет собой специальный тип файла, который содержит путь к другому файлу или каталогу в файловой системе. Симлинки делаются для создания «виртуальных» ссылок на файлы или каталоги, что позволяет ссылаться на них по альтернативному пути.
Одно из преимуществ символических ссылок состоит в их гибкости. Вы можете создавать ссылки на файлы или каталоги в различных местах файловой системы и иметь доступ к ним через различные пути.
Симлинки могут быть созданы и удалены с помощью командной строки или файловых менеджеров в Linux.
В Linux симлинк или символическая ссылка — это ссылка на другой файл, которую мы используем для лучшей организации файлов и в качестве быстрого доступа к сложным местам. Если вы работаете в Windows, то симлинки это тоже самое что ярлыки.

Создание симлинка в Linux
Основной синтаксис для создания символических ссылок в Linux следующий.
ln -s [target] [symlink]
Причина использования опции -s заключается в том, что симлинки в Linux считаются мягкими, а не жесткими ссылками. Под целью мы подразумеваем файл или каталог, на который мы хотим сделать символическую ссылку.
Вот пример для наглядности.
ln -s /home/setiwik/Documents/sample.txt sym-sample
Таким образом, все, что мы делаем в файле sym-sample.txt , будет отражено и в базовом файле sample .
Помните, что в данном случае я использовал абсолютный путь для определения цели ссылки, но вы также можете использовать относительные пути. Это также относится к файлу sym-sample.txt .
Еще одно очень частое использование символических ссылок — сделать так, чтобы они указывали непосредственно на каталог.
ln -s [reference-directory] [link-directory]
Вот пример команды.
В данном случае ~/Documents/folder ссылается непосредственно на /var/ .
Удаление симлинков (Symlinks) Linux
Процесс удаления символических ссылок в Linux прост, так как это обычный системный файл. Это означает, что мы можем удалить их с помощью команды rm .
Вы также можете использовать команду unlink
unlink [symlink] command
Разница между ними заключается в том, что rm является более гибким и позволяет использовать подстановочные знаки и так далее.
Возможно вам будет интересно: Выпущена новая версия GhostBSD 22.06.15
Заключение
В этой статье мы рассмотрели симлинки (Symlinks) в Linux и узнали, что это символические ссылки на другие файлы или каталоги в файловой системе. Симлинки предоставляют гибкость и удобство в организации файловой системы, позволяя создавать «виртуальные» ссылки на файлы или каталоги с альтернативными путями.
Симлинки представляют собой мощный инструмент для организации файловой системы в Linux, облегчая доступ к файлам и каталогам и упрощая процессы работы с ними. Используйте эту информацию, чтобы лучше понять и использовать симлинки в вашей системе Linux.
Как найти и удалить битые символические ссылки в Linux
Символьная ссылка или «символическая ссылка» — это файл Linux, который просто указывает на другой файл. Если указанный файл будет удален, символическая ссылка останется, но не покажет, что есть проблема, пока вы не попытаетесь ее использовать. Вот несколько простых способов найти и удалить символические ссылки, которые указывают на файлы, которые были перемещены или удалены.
Символические ссылки играют очень полезную роль в системах Linux. Они могут помочь вспомнить, где находятся важные файлы в системе, упростить вам доступ к этим файлам и сэкономить вам много дискового пространства и возможных проблем, избавив вас от необходимости копировать большие файлы.
Что именно является символической ссылкой?
Обычно называемые symlink(символической ссылкой) или soft link(мягкой ссылкой), символические ссылки представляют собой очень маленькие файлы. На самом деле символическая ссылка содержит только имя любого файла, на который она указывает, обычно вместе с путем к файловой системе (относительно текущего местоположения или абсолютного значения).
Если файл с именем file1 указывает на файл с именем /apps/files/file-2020, длина file1 будет составлять 21 символ, даже если размер файла file-2020 составляет 2 терабайта. Если он указывает на ./file-2020, длина его будет всего 11 символов. Если указывает на file-2020, то только девять.
Если вы выполните команду, подобную «vi file1» (где file1 — имя символической ссылки), вы в конечном итоге отредактируете любой файл, на который указывает file1, а не содержимое самой символической ссылки. Системы Linux знают, как работать с символическими ссылками, и просто делают правильные вещи. Точно так же, если вы используете такие команды, как cat, more, head или tail, вы будете просматривать содержимое указанного файла.
Если вы удалите символическую ссылку, с другой стороны, вы удалите ссылку, а не ссылочный файл. Опять же, Linux делает то, что имеет смысл. Симлинки предназначены для упрощения использования и обмена файлами — не более того.
Когда ломаются ссылки
Когда файл, на который указывает символическая ссылка, удаляется из системы или переименовывается, символическая ссылка больше не будет работать, как предполагалось. Символическая ссылка не будет обновляться или удаляться с изменениями в файле, на который она указывает. Она продолжит указывать на указанный файл, даже после того, как этот файл был давно удален.
Если вы попытаетесь использовать символическую ссылку, которая указывает на несуществующий файл, вы получите ошибку, подобную этой:
$ tail file1 tail: cannot open 'file1' for reading: No such file or directory
Если вы попытаетесь получить доступ к символической ссылке, которая указывает на себя (бывает и так), вы увидите что-то вроде этого:
$ cat loops cat: loopy: Too many levels of symbolic links $ ls -l loops lrwxrwxrwx 1 shs shs 7 May 25 18:01 loops -> loops
Если первая буква в длинном списке не привлекла вашего внимания, это означает, что файл является символической ссылкой. Разрешения rwxrwxrwx являются стандартными и не отражают разрешения для файла, на который указывает символическая ссылка.
Нахождение сломанных символических ссылок
У команды find есть опция, которая позволяет вам найти символические ссылки, которые указывают на файлы, которые больше не существуют. Эта команда перечисляет символические ссылки в текущем каталоге:
$ find . -type l
буква l указывает команде поиска искать символические ссылки.
Команда, показанная ниже, с другой стороны, ищет в текущем каталоге символические ссылки, которые указывают на файлы, которые не существуют:
$ find . -xtype l
Чтобы избежать ошибок, когда команда пытается просмотреть файлы или каталоги, на которые у вас нет разрешения, вы можете отправить весь вывод ошибок в /dev/null следующим образом:
$ find . -xtype l 2>/dev/null
Вы также можете найти неработающие символические ссылки с помощью такой команды. Она длиннее предыдущей, но делает тоже самое:
$ find . -type l ! -exec test -e <> \; -print 2>/dev/null
Что делать с битыми символическими ссылками
Если вы не знаете, что файл, на который ссылается символическая ссылка, будет заменен, лучшим шагом будет просто удалить неработающую ссылку. Фактически, вы можете найти и удалить битые символические ссылки в одной команде, если хотите, с помощью такой команды:
$ find . -xtype l 2>/dev/null -exec rm <> \;
Часть этой команды rm <> превращается в команду «удалить файл».
Если вместо этого вы хотите связать символическую ссылку с другим файлом, вам придется удалить символическую ссылку, а затем воссоздать ее так, чтобы она указывала на новый файл. Вот пример:
$ rm file1 $ ln -s /apps/data/newfile file1