Главная >> Инструкции >> Как удалить ссылку в Linux

Как удалить ссылку в Linux

Ссылкой в системе Linux называют специальный файл, который отсылает к другому файлу или директории. В результате один файл может размещаться сразу же в нескольких местах одновременно.

При удалении оригинала ссылка на него сохраняется. В результате могут возникать сбои и в целом засорятся система. В данной статье мы расскажем, как удалить ссылку в Linux.


Содержание статьи

Как удалить ссылку в Linux

Сначала мы объясним способ проверки, что файл на самом деле является ссылкой. Это удобно делать с помощью утилиты ls. А затем рассмотрим три способа удаления, каждый из которых имеет свои особенности.

Убедится, что это ссылка

С помощью ls удобно смотреть информацию о файле. Для использования утилиты задайте ей опцию -l и укажите путь. В качестве примера возьмем файл ~/symlinks/link_1:

ls -l ~/symlinks/link_1

yDnvAnxv8eeGr4v5LT3TnW7ipIAAAAAElFTkSuQmCC

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

ls -l ~/symlinks/

GNLtn0owYIAAAAASUVORK5CYII=

Нужный файл будет отмечен характерной стрелочкой после его названия.

Удалить с помощью rm

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

В терминале выполните команду:

rm ~/symlinks/link_1

9fyiDZbB0kC08AAAAASUVORK5CYII=

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

rm -v ~/symlinks/link_1

8BTYWsL3lBWUYAAAAASUVORK5CYII=

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

A0q3GUrzMpniAAAAAElFTkSuQmCC

Теперь вы знаете как удалить символическую ссылку Linux.

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

unlink ~/symlinks/link_1

ABN6eCitZ+WIAAAAAElFTkSuQmCC

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

A0q3GUrzMpniAAAAAElFTkSuQmCC

В рамках поставленной задачи rm и unlink работают практически одинаково. А теперь перейдем к последнему способу.

Удалить ссылки с помощью find

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

Для поиска нужно указать каталог и несколько параметров:

find ~/symlinks/ -type l -print

C4BdCX9dwOH80PzPpn8BAxBhKJ5YfzEAAAAASUVORK5CYII=

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

find ~/symlinks/ -maxdepth 1 -type l -print

0CZq45+iCecAAAAASUVORK5CYII=

Когда ссылок в директории достаточно много, вы можете задать шаблон поиска для команды find. В качестве примера возьмем ситуацию, когда нужно отыскать только скрытые ссылки с датой последнего изменения не больше 30 дней назад:

find ~/data/ -type l -name ".*" -mtime -30 -print

U59lh8i1fhgwuwTLmQDNO3WMd559dfkPjKPEQUzktkgAAAAASUVORK5CYII=

В команду были добавлены два критерия:

  • -name – поиск по имени.
  • -mtime – по времени модификации.

По заданному шаблону все найденные ссылки можно удалить. Для этого -print заменяется на -delete:

find ~/data/ -type l -name ".*" -mtime -30 -delete

w3i+sJXt0ZVSEAAAAASUVORK5CYII=

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

find ~/broken_links/ -xtype l

P8AO8B3fH6nmd4AAAAASUVORK5CYII=

В результате все битые ссылки отобразятся в терминале. Для их удаления в конце команды добавьте -delete:

find ~/broken_links/ -xtype l -delete

wGzWTJuO4k5RwAAAABJRU5ErkJggg==

Выводы

В данной статье мы разобрали три по-своему удобных способа как удалить жесткую ссылку Linux. В случае с утилитами rm и unlink процедура достаточно простая. Но их следует использовать в паре с ls для проверки ссылок и успешности выполнения процедуры. А find в этом плане является универсальным вариантом с расширенными возможностями. Он окажется особенно полезным для чистки битых ссылок, которые никуда не ведут.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Оставьте комментарий