How Do I Remove a Symbolic Link in Linux?
In today’s post, we will be describing how to remove a symbolic link in Linux. Note that removing a symbolic link does not affect the file it points to.
Before removing a file, you can verify whether it is a symbolic link using the ls -l command. It will also show you the file or directory that it points to.
The l in permissions (lrwxrwxrwx) confirms that it’s a symbolic link.

Remove a Symbolic Link using the unlink command
The unlink command is used for removing a single file from the file system. To remove a symbolic link in Linux, type the unlink command followed by the name of the symbolic link and hit Enter:
Replace symbolic_link with the name of the symbolic link you want to remove. After that, you can use the ls -l command to confirm if the symlink has been removed.

Remove a symlink that points to a directory, don’t use the slash after the directory name. Let’ say we want to remove a symbolic link directory named Docs, as shown in the following screenshot:

The command to remove the symlink directory will be:

Remove a Symbolic Link using the rm command
The rm command can also be used to remove a symbolic link. For removing a symbolic link in Linux, type the rm command followed by the name of the symbolic link and hit Enter:
After that, you can use the ls -l command to confirm if the symlink has been removed.

You can also use the -i flag with the rm command to prompt for confirmation.

Removing a symlink that points to a directory, don’t use the slash after the directory name. Let’ say we want to remove a symbolic link directory named Docs, as shown in the following screenshot:

The command to remove the symlink directory will be:
After that, you can use the ls -l command to confirm if the symlink has been removed.

That is all there is to it! You have learned to remove a symbolic link in Linux OS using the unlink and rm command in this post. While removing a symbolic link, make sure only to remove the symbolic link itself, not the file or directory it is linking to.
About the author

Karim Buzdar
Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.
Как удалить ссылку в Linux
Ссылкой в системе Linux называют специальный файл, который отсылает к другому файлу или директории. В результате один файл может размещаться сразу же в нескольких местах одновременно.
При удалении оригинала ссылка на него сохраняется. В результате могут возникать сбои и в целом засорятся система. В данной статье мы расскажем, как удалить ссылку в Linux.
Как удалить ссылку в Linux
Сначала мы объясним способ проверки, что файл на самом деле является ссылкой. Это удобно делать с помощью утилиты ls. А затем рассмотрим три способа удаления, каждый из которых имеет свои особенности.
Убедится, что это ссылка
С помощью ls удобно смотреть информацию о файле. Для использования утилиты задайте ей опцию -l и укажите путь. В качестве примера возьмем файл

Также вы можете проверить целый каталог на наличие ссылок:

Нужный файл будет отмечен характерной стрелочкой после его названия.
Удалить с помощью rm
Команда rm позволяет удалять любые файлы в файловой системе Linux, в том числе и ссылки. А значит, она подходит для нашей задачи. Здесь важно упомянуть, что в результате удаления ссылки оригинальный файл или директория затронуты не будут.
В терминале выполните команду:

При этом на вывод никаких данных не поступит. Чтобы получить подробную информацию о процедуре, добавьте команде опцию -v:


Теперь вы знаете как удалить символическую ссылку Linux.
Удалить с помощью unlink
Утилита unlink предназначается для удаления файлов из файловой системы Linux. Ей достаточно указать путь к ссылке:

А затем проверить успешность операции с помощью ls.

В рамках поставленной задачи rm и unlink работают практически одинаково. А теперь перейдем к последнему способу.
Удалить ссылки с помощью find
С помощью команды find можно искать и удалять ссылки в заданной директории. А значит, не требуется дополнительное использование ls. В отличие от двух предыдущих вариантов, у нее достаточно продвинутые возможности, например, установка критериев поиска. Но и синтаксис по этой причине не такой простой.
Для поиска нужно указать каталог и несколько параметров:
/symlinks/ -type l -print
/symlinks/ -maxdepth 1 -type l -print
/data/ -type l -name «.*» -mtime -30 -print

В команду были добавлены два критерия:
- -name – поиск по имени.
- -mtime – по времени модификации.
По заданному шаблону все найденные ссылки можно удалить. Для этого -print заменяется на -delete:
/data/ -type l -name «.*» -mtime -30 -delete

Напоследок разберемся с поиском и удалением битых ссылок, которые никуда не ведут, например, после удаления оригинального файла или директории. Для такой цели подойдет параметр -xtype l. При этом -print для вывода не требуется:
/broken_links/ -xtype l
/broken_links/ -xtype l -delete

Выводы
В данной статье мы разобрали три по-своему удобных способа как удалить жесткую ссылку Linux. В случае с утилитами rm и unlink процедура достаточно простая. Но их следует использовать в паре с ls для проверки ссылок и успешности выполнения процедуры. А find в этом плане является универсальным вариантом с расширенными возможностями. Он окажется особенно полезным для чистки битых ссылок, которые никуда не ведут.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как удалить (удалить) символические ссылки в Linux
Символическая ссылка, также известная как символическая ссылка, представляет собой файл особого типа, который указывает на другой файл или каталог. Это что-то вроде ярлыка в Windows. Символическая ссылка может указывать на файл или каталог в той же или в другой файловой системе или разделе.
В этом руководстве мы покажем вам, как удалить (удалить) символические ссылки в системах Linux / UNIX с помощью команд rm , unlink и find .
Подготовка
Чтобы удалить символическую ссылку, вам необходимо иметь права на запись в каталог, который содержит символическую ссылку. В противном случае вы получите ошибку «Операция запрещена».
Когда вы удаляете символическую ссылку, файл, на который она указывает, не изменяется.
Используйте команду ls -l чтобы проверить, является ли данный файл символической ссылкой, и найти файл или каталог, на который указывает символическая ссылка.
Первый символ «l» указывает на то, что файл является символической ссылкой. Символ «->» показывает файл, на который указывает символическая ссылка.
Удалите символические ссылки с помощью rm
Команда rm удаляет указанные файлы и каталоги.
Чтобы удалить символическую ссылку, вызовите команду rm за которой следует имя символической ссылки в качестве аргумента:
В случае успеха команда завершается с нулем и не выводит никаких результатов.
С помощью rm вы можете удалить более одной символической ссылки одновременно. Для этого передайте имена символических ссылок в качестве аргументов, разделенных пробелом:
Чтобы получить запрос перед удалением символической ссылки, используйте параметр -i :
Для подтверждения введите y и нажмите Enter .
Если символическая ссылка на каталог, не добавляйте к / слэш в конце. В противном случае вы получите ошибку:
Если имя аргумента заканчивается на / , команда rm предполагает, что файл является каталогом. Ошибка возникает из-за того, что при использовании без опции -d или -r rm не может удалять каталоги.
На всякий случай никогда не используйте параметр -r при удалении символических ссылок с помощью rm . Например, если вы наберете:
Содержимое целевого каталога будет удалено.
Удалить символические ссылки с помощью unlink
Команда unlink удаляет указанный файл. В отличие от rm , unlink принимает только один аргумент.
Чтобы удалить символическую ссылку, запустите команду unlink за которой следует имя символической ссылки в качестве аргумента:
Если команда выполняется успешно, она не выводит никаких результатов.
Не добавляйте к / слэш в конце имени SYMLINK потому unlink не может удалить каталоги.
Найти и удалить битые символические ссылки
Если вы удалите или переместите исходный файл в другое место, символический файл останется висящим (сломанным).
Чтобы найти все неработающие символические ссылки в данном каталоге, выполните следующую команду:
Команда выведет список всех неработающих ссылок в каталоге и его подкаталогах.
Если вы хотите исключить символические ссылки, содержащиеся в подкаталогах, передайте параметр -maxdepth 1 чтобы find :
Как только вы найдете неработающие символические ссылки, вы можете вручную удалить их с помощью rm или unlink либо использовать параметр -delete команды find :
Выводы
Чтобы удалить символическую ссылку, используйте команду rm или unlink за которой следует имя символической ссылки в качестве аргумента. При удалении символической ссылки, указывающей на каталог, не добавляйте косую черту в конце имени символической ссылки.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
How to remove symbolic link
So now I want to correct it but it says symbolic link already exist.
6 Answers 6
You can use rm to delete the symlink.
will remove the symlink.
You can try the unlink command as well.
unlink is a similar command to rm . Therefore rm <symlink> will work same as unlink <symlink>
![]()
Suppose you were trying to do:
but accidentally did:
To correct it simply navigate to the folder where the link is and unlink
![]()
You can use the following to remove the symbolic link
Explanation
- rm is the terminal command to remove a file. See rm —help for more options that it can take.
- sudo is used because the symbolic link was created with sudo . The file therefore belongs to root and your normal user will not have permission to edit/remove it (you would be able to force this if you had write permission on the directory, which would not be the case here).
Extra
Also see this post and my comment to the first answer to access phpmyadmin when getting a not found error after install.
![]()
A small caveat I found was that I was trying to run rm and unlink on a symlink and I was getting an error that it was a directory.
To remove the symlink, I used unlink folder_name . It was failing as there was a trailing / which causes the file to appear to be a directory.