Ссылкой в Linux называют специальный файл, который отсылает к другому файлу или директории. Так один файл может размещаться сразу же в нескольких местах одновременно. При удалении оригинала ссылка на него сохраняется. В результате могут возникать сбои и в целом засорятся система.
Как удалить ссылку
Для начала объясним способ проверки, что файл на самом деле является ссылкой. Это удобно делать с помощью утилиты ls. После рассмотрим три способа удаления, каждый из которых имеет свои особенности.
Убеждаем, что это ссылка
С помощью ls удобно смотреть информацию о файле. Для использования утилиты задайте ей опцию -l и укажите путь. В качестве примера возьмем файл ~/symlinks/link_1:
$ ls -l ~/symlinks/link_1

Вы можете проверить целый каталог на наличие ссылок:
$ ls -l ~/symlin

Файл, который не нужен, отмечен характерной стрелочкой после его названия.
Используем Rm
С помощью команды rm можно удалять любые файлы в файловой системе Linux, в том числе и ссылки. То есть, она подходит для нашей задачи. Здесь важно упомянуть, что в результате удаления ссылки оригинальный файл или директория затронуты не будут.
В терминале выполните команду:
$ rm ~/symlinks/link_1

Также чтобы получить подробную информацию о процедуре, добавьте команде опцию -v:
$ rm -v ~/symlinks/link_1

Дополнительно можно проверить, пропала ли ссылка из директории. Для этого используйте описанную ранее команду ls.

Теперь вы знаете как удалить символическую ссылку Linux.
Используем UNLINK
Утилита unlink предназначается для удаления файлов из файловой системы Linux. Ей достаточно указать путь к ссылке:
$ unlink ~/symlinks/link_1

В рамках поставленной задачи rm и unlink работают практически одинаково. А теперь перейдем к последнему способу.
Используем Find
С помощью команды find можно искать и удалять ссылки в заданной директории. А значит, не требуется дополнительное использование ls.

В отличие от двух предыдущих вариантов, у нее достаточно продвинутые возможности, например, установка критериев поиска. Но и синтаксис по этой причине не такой простой.
Для поиска нужно указать каталог и несколько параметров:
$ find ~/symlinks/ -type l -print

Параметр -type l нужен для отбора только символических ссылок, -print для вывода полного имени. А с помощью -maxdepth можно задать глубину поиска по вложенным каталогам. Если указать 1, то поиск будет идти только по самому каталогу, без вложений:
$ find ~/symlinks/ -maxdepth 1 -type l -print

Как только ссылок в директории будет много, вы можете задать шаблон поиска для команды find. В качестве примера возьмем ситуацию, когда нужно отыскать только скрытые ссылки с датой последнего изменения не больше 30 дней назад:
$ find ~/data/ -type l -name ".*" -mtime -30 -print

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

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

В результате все битые ссылки отобразятся в терминале. Для их удаления в конце команды добавьте -delete:
$ find ~/broken_links/ -xtype l -delete

На этом инструкция по удалению ссылки в Linux завершена.