Thank you for reading this post, don't forget to subscribe!
Символьные ссылки, символические ссылки или программные ссылки используются для создания ярлыков для других файлов в Linux. Символьные ссылки широко используются при компоновке библиотек в Linux.
Когда исходный файл, на который указывает ссылка, удаляется, ссылка становится висячей ссылкой. Хранение таких ссылок не может быть хорошей идеей.
Теперь возникает вопрос, как найти битые символические ссылки в Linux? В некоторых дистрибутивах битые ссылки отображаются разными цветами, но это не способ найти все такие битые ссылки.
Поиск неработающих символических ссылок в Linux
В этой статье мы покажем вам несколько способов поиска неработающим ссылок в Linux.
Способ 1. Используйте команду find, чтобы получить список всех неработающих символических ссылок.
Удивительная команда find также может быть использована для поиска неработающих программных ссылок. Более новые версии этой команды предоставляют специальную опцию для этой задачи.
Чтобы найти все висячие ссылки в текущем каталоге и его подкаталогах, вы можете использовать команду find следующим образом:
1 |
find . -xtype l |
В ее выводе будут перечислены все битые ссылки:
1 2 3 |
find . -xtype l ./target_link2 ./newdir/new_dir/link_dir |
Способ 2. Используйте команду symlinks для поиска неработающих символических ссылок
Вы также можете использовать команду symlinks с именем символические ссылки для обработки висячих ссылок.
Возможно, вам придется установить команду symlinks. Это доступно в Debian. Если вы используете Ubuntu, вам нужно включить репозиторий Universe.
1 |
sudo apt install symlinks |
После установки вы можете использовать его следующим образом:
1 |
symlinks [options] path_to_directory |
Итак, если вам нужно найти неработающие ссылки в текущем каталоге, вы можете использовать его следующим образом:
1 2 |
symlinks . dangling: /home/andreyex/books/target_link2 -> newdir/test_dir/myzip |
Вы что-то заметили? В нем указана только одна неработающая ссылка, в то время как команда find имеет две неработающие ссылки. Это потому, что если вы хотите выполнять рекурсивный поиск, вам нужно будет указать опцию:
1 |
symlinks -r directory |
Вы также можете удалить все неработающие ссылки с помощью опции -d команды symlinks.
1 2 3 |
symlinks -d . dangling: /home/andreyex/books/target_link2 -> newdir/test_dir/myzip deleted: /home/andreyex/books/target_link2 -> newdir/test_dir/myzip |
Фактически, символические ссылки могут использоваться для правильного управления программными ссылками в вашей системе. Он может предупредить вас о ссылках в файловых системах, изменить грязные ссылки на относительные или сократить длинные ссылки.