- Как удалить (удалить) символические ссылки в Linux
- Подготовка
- Удалите символические ссылки с помощью rm
- Удалить символические ссылки с помощью unlink
- Найти и удалить битые символические ссылки
- Выводы
- Как создавать и удалять симлинки
- Windows
- Синтаксис
- Симлинк на файл
- Симлинк на директорию
- Удалить симлинк
- Разрешить симлинки в Windows
- Linux и FreeBSD
- Создание
- Удаление
- Решение возможных проблем
- ln: failed to create symbolic link . Function not implemented
- Команда Ln в Linux
- Как использовать ln команду
- Создание символической ссылки на файл
- Создание символических ссылок на каталог
- Перезапись символических ссылок
- Удаление символических ссылок
Как удалить (удалить) символические ссылки в Linux
Символическая ссылка, также известная как символическая ссылка, представляет собой файл особого типа, который указывает на другой файл или каталог. Это что-то вроде ярлыка в Windows. Символическая ссылка может указывать на файл или каталог в той же или в другой файловой системе или разделе.
В этом руководстве мы покажем вам, как удалить (удалить) символические ссылки в системах Linux / UNIX с помощью команд rm , unlink и find .
Подготовка
Чтобы удалить символическую ссылку, вам необходимо иметь права на запись в каталог, который содержит символическую ссылку. В противном случае вы получите ошибку «Операция запрещена».
Когда вы удаляете символическую ссылку, файл, на который она указывает, не изменяется.
Используйте команду ls -l чтобы проверить, является ли данный файл символической ссылкой, и найти файл или каталог, на который указывает символическая ссылка.
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
Первый символ «l» указывает на то, что файл является символической ссылкой. Символ «->» показывает файл, на который указывает символическая ссылка.
Удалите символические ссылки с помощью rm
Команда rm удаляет указанные файлы и каталоги.
Чтобы удалить символическую ссылку, вызовите команду rm за которой следует имя символической ссылки в качестве аргумента:
В случае успеха команда завершается с нулем и не выводит никаких результатов.
С помощью rm вы можете удалить более одной символической ссылки одновременно. Для этого передайте имена символических ссылок в качестве аргументов, разделенных пробелом:
Чтобы получить запрос перед удалением символической ссылки, используйте параметр -i :
Для подтверждения введите y и нажмите Enter .
rm: remove symbolic link 'symlink_name'?
Если символическая ссылка на каталог, не добавляйте к / слэш в конце. В противном случае вы получите ошибку:
rm: cannot remove 'symlink_to_dir/': Is a directory
Если имя аргумента заканчивается на / , команда rm предполагает, что файл является каталогом. Ошибка возникает из-за того, что при использовании без опции -d или -r rm не может удалять каталоги.
На всякий случай никогда не используйте параметр -r при удалении символических ссылок с помощью rm . Например, если вы наберете:
Содержимое целевого каталога будет удалено.
Удалить символические ссылки с помощью unlink
Команда unlink удаляет указанный файл. В отличие от rm , unlink принимает только один аргумент.
Чтобы удалить символическую ссылку, запустите команду unlink за которой следует имя символической ссылки в качестве аргумента:
Если команда выполняется успешно, она не выводит никаких результатов.
Не добавляйте к / слэш в конце имени SYMLINK потому unlink не может удалить каталоги.
Найти и удалить битые символические ссылки
Если вы удалите или переместите исходный файл в другое место, символический файл останется висящим (сломанным).
Чтобы найти все неработающие символические ссылки в данном каталоге, выполните следующую команду:
find /path/to/directory -xtype l
/path/to/directory/symlink1 /path/to/directory/subdir/symlink2
Команда выведет список всех неработающих ссылок в каталоге и его подкаталогах.
Если вы хотите исключить символические ссылки, содержащиеся в подкаталогах, передайте параметр -maxdepth 1 чтобы find :
find /path/to/directory -maxdepth 1 -xtype l
Как только вы найдете неработающие символические ссылки, вы можете вручную удалить их с помощью rm или unlink либо использовать параметр -delete команды find :
find /path/to/directory -xtype l -delete
Выводы
Чтобы удалить символическую ссылку, используйте команду rm или unlink за которой следует имя символической ссылки в качестве аргумента. При удалении символической ссылки, указывающей на каталог, не добавляйте косую черту в конце имени символической ссылки.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как создавать и удалять симлинки
Обновлено: 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
Причина: файловая система, на которой мы хотим создать файл не поддерживает симлинки. Посмотреть файловую систему подмонтированных разделов можно командой:
Решение: как правило, решения зависит от используемой файловой системы и ее драйвера. Но, обычно, решения у проблемы нет и нужно искать методы работы без использования символьных ссылок.
Команда Ln в Linux
Символическая ссылка, также известная как символическая ссылка или программная ссылка, представляет собой файл особого типа, указывающий на другой файл или каталог.
В этом руководстве вы узнаете, как использовать lnкоманду для создания символических ссылок.
В системах Linux/UNIX существует два типа ссылок:
- Жесткие ссылки . Вы можете рассматривать жесткую ссылку как дополнительное имя для существующего файла. Жесткие ссылки связывают два или более имен файлов с одним и тем же индексным узлом . Вы можете создать одну или несколько жестких ссылок для одного файла. Жесткие ссылки нельзя создавать для каталогов и файлов в другой файловой системе или разделе.
- Мягкие ссылки . Мягкая ссылка — это что-то вроде ярлыка в Windows. Это косвенный указатель на файл или каталог. В отличие от жесткой ссылки, символическая ссылка может указывать на файл или каталог в другой файловой системе или разделе.
Как использовать ln команду
ln это утилита командной строки для создания ссылок между файлами. По умолчанию ln команда создает жесткие ссылки. Чтобы создать символическую ссылку, используйте опцию -s ( ). —symbolic
Синтаксис ln команды для создания символических ссылок следующий:
- Если заданы оба параметра FILE и LINK , ln будет создана ссылка из файла, указанного в качестве первого аргумента ( FILE ), на файл, указанный в качестве второго аргумента ( LINK ).
- Если в качестве аргумента указан только один файл или вторым аргументом является точка ( . ), ln будет создана ссылка на этот файл в текущем рабочем каталоге . Имя символической ссылки будет таким же, как и имя файла, на который она указывает.
По умолчанию в случае успеха ln ничего не выводится и возвращается ноль.
Создание символической ссылки на файл
Чтобы создать символическую ссылку на данный файл, откройте терминал и введите:
ln -s source_file symbolic_link
Замените source_file на имя существующего файла, для которого вы хотите создать символическую ссылку, и symbolic_link на имя символической ссылки.
Параметр symbolic_link является необязательным. Если вы не укажете символическую ссылку, ln команда создаст новую ссылку в вашем текущем каталоге:
В следующем примере мы создаем символическую ссылку с именем my_link.txt на файл с именем my_file.txt :
ln -s my_file.txt my_link.txt
Чтобы убедиться, что символическая ссылка была успешно создана, используйте ls команду:
Вывод будет выглядеть примерно так:
lrwxrwxrwx 1 www-php users 4 Nov 2 23:03 my_link.txt -> my_file.txt
Символ l представляет собой флаг типа файла, представляющий символическую ссылку. Символ -> показывает файл, на который указывает символическая ссылка.
Создание символических ссылок на каталог
Команда для создания символической ссылки на каталог такая же, как и при создании символической ссылки на файл. Укажите имя каталога в качестве первого параметра и символическую ссылку в качестве второго параметра.
Например, если вы хотите создать символическую ссылку из /mnt/my_drive/movies каталога в ~/my_movies каталог, который вы запустите:
ln -s /mnt/my_drive/movies ~/my_movies
Перезапись символических ссылок
Если вы попытаетесь создать символическую ссылку, которая уже существует , ln команда напечатает сообщение об ошибке.
ln -s my_file.txt my_link.txt
Чтобы перезаписать путь назначения символической ссылки, используйте параметр -f ( —force ).
ln -sf my_file.txt my_link.txt
Удаление символических ссылок
Чтобы удалить/удалить символические ссылки , используйте команду unlink или rm .
Синтаксис unlink очень прост:
Удаление символической ссылки с помощью rm команды аналогично удалению файла:
Независимо от того, какую команду вы используете, при удалении символической ссылки не добавляйте / косую черту в конце ее имени.
Если вы удалите или переместите исходный файл в другое место, символический файл останется висящим (сломанным) и должен быть удален.