ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Удаление символических ссылок в Linux. 3 Способа

Как удалить Символические ссылки в Linux

Символическая ссылка, также известная как символическая ссылка, представляет собой особый тип файла, который указывает на другой файл или каталог на вашем компьютере. Это что-то вроде ярлыка в Windows. Символическая ссылка может указывать на файл или каталог в той же или другой файловой системе или разделе. С помощью символических ссылок вы можете более эффективно организовать свои файлы и папки и упростить доступ к ним.

В этой статье показано, как удалить символьные ссылки в системах Linux / UNIX с помощью команд rmunlink и find.

 

Прежде чем вы начнете

Чтобы удалить символическую ссылку, у вас должны быть права на запись в каталог, содержащий символическую ссылку. В противном случае вы получите сообщение об ошибке “Operation not permitted” (Операция не разрешена).

Когда вы удаляете символическую ссылку, файл, на который она ссылается, остается нетронутым. В сам файл не будут внесены никакие изменения.

Используйте команду ls -l, чтобы проверить, является ли данный файл символической ссылкой, и найти файл или каталог, на который указывает символическая ссылка.

ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16  2018 /usr/bin/python -> python2.7

 

Первый символ, “l», указывает на то, что файл является символической ссылкой. Символ “->” показывает файл, на который указывает символическая ссылка.

 

Команда rm удаляет указанные файлы и каталоги.

Чтобы удалить символическую ссылку, вызовите команду rm, за которой следует имя символической ссылки в качестве аргумента:

rm symlink_name

 

Команда завершится с нулем, и после успешного выполнения никаких выходных данных отображаться не будет.

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

rm symlink1 symlink2

 

Чтобы получить запрос перед удалением символической ссылки, используйте опцию -i:

rm -i symlink_name

 

Для подтверждения введите y и нажмите Enter.

rm: remove symbolic link 'symlink_name'? 

 

Если символическая ссылка указывает на каталог, не добавляйте / косую черту в конце. В противном случае вы получите сообщение об ошибке:

rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory

 

Если имя аргумента заканчивается на /, то команда rm предполагает, что файл является каталогом. Ошибка возникает из-за того, что при использовании без опции -d или -r не удается rm удалить каталоги.

На всякий случай никогда не используйте опцию -r при удалении символических ссылок с помощью rm. Например, если вы введете:

rm -f symlink_to_dir/

 

Содержимое целевого каталога будет удалено.

 

Команда unlink удаляет данный файл. В отличие от rm, unlink принимает только один аргумент.

Чтобы удалить символическую ссылку, выполните команду unlink, за которой следует имя символической ссылки в качестве аргумента:

unlink symlink_name

 

Если команда выполняется успешно, она не выводит никаких выходных данных.

Не добавляйте / косую черту в конце имени символьной ссылки, потому что 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
/path/to/directory/symlink1

 

Как только вы обнаружите неработающие символьные ссылки, вы можете либо вручную удалить их с помощью rm или unlink, либо использовать -delete опцию find команды:

find /path/to/directory -xtype l -delete

 

Заключение

Чтобы удалить символьную ссылку, используйте команду rm или unlink, за которой следует имя символьной ссылки в качестве аргумента. Не добавляйте косую черту в конце к имени символьной ссылки при удалении символьной ссылки, указывающей на каталог.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Exit mobile version