Символические ссылки или символические ссылки — это способ упростить управление вашей системой Linux. Это довольно часто встречается на серверах или рабочих станциях, где связь одного каталога с другим используется для того, чтобы приложения отправляли информацию в другое место в дереве каталогов без изменения конфигурации, что важно для поддержания работоспособности системы. Однако проблема с использованием символических ссылок заключается в том, что нет никакой гарантии, что в этой ссылке всегда будут оба каталога. Здесь мы покажем вам, как найти и исправить неработающие символические ссылки в Linux.
Инструменты для исправления неработающих символических ссылок
В большинстве репозиториев есть невероятно полезное приложение, которое называется просто symlinks
. Это простая утилита командной строки, которая выдает полезные результаты и предлагает варианты удаления тех же самых неработающих символических ссылок.
Чтобы установить его, используйте следующие команды:
# For Debian/Ubuntu-based distro sudo apt install symlinks # For Fedora/CentOS sudo dnf install symlinks
Для symlinks
есть несколько ключевых вариантов. Это -d
, который удаляет висячие ссылки, и -r
, который рекурсивно выполняет любую указанную вами опцию через подкаталоги.
Вы также можете использовать встроенный инструмент find
в Linux. Это менее удобный пример, но он полезен для выучить команду «найти» и того, как он работает.
Разрушение символических ссылок
Сначала я создам символическую ссылку. Для этого нужно взять существующий файл и использовать команду ln
, чтобы связать его с файлом, который еще не существует. Для меня это было бы похоже на следующий пример.
touch test-file.txt ln -s test-file.txt linked-file.txt
С помощью команды ls
можно увидеть, что ссылка существует.
Теперь я разорву эту символическую ссылку.
rm test-file.txt
Вы можете видеть, что хотя я удалил исходный файл, команда ls -l
по-прежнему сообщает о ссылке. Вот тут-то и возникает проблема. Эти файлы могут находиться в разных каталогах, что значительно усложняет проверку наличия исходного файла.
Поиск и исправление неработающих символических ссылок
Способ исправить неработающие символические ссылки — просто удалить их. Вернуть их обратно невозможно, поэтому придется просто удалить их из дерева виртуальных каталогов.
Чтобы сообщить о неработающих символических ссылках с помощью инструмента symlinks
, используйте следующую команду:
symlinks .
Обратите внимание на знак «.» указывая текущий рабочий каталог. Измените это значение для любого каталога, в котором вы пытаетесь выполнить поиск. Вывод может выглядеть так:
dangling: /home/jperkins/linked-file.txt -> test-file.txt
Указывает на то, что «linked-file.txt» висит и символическая ссылка не работает. Чтобы удалить их, используйте следующую команду:
symlinks -d .
Вывод будет похож на прошлый раз, но также будет содержать строку «удалено».
Чтобы исправить неработающие символические ссылки с find
, используйте следующую команду:
find . -xtype l
Еще раз обратите внимание, что знак «.» представляющий текущий рабочий каталог. Результат будет менее удобен для пользователя, но все равно будет полезен.
А чтобы удалить, добавьте параметр delete
.
find . -xtype l -delete
Вы не получите никаких результатов для этого запроса, но если вы запустите его снова без параметра -delete
, вы ничего не найдете.
Вот и все. Теперь вы можете легко найти неработающие символические ссылки и удалить их, прежде чем они вызовут новые проблемы. Есть больше руководств по символическим ссылкам , которые вам стоит проверить. Вы также можете узнать больше о разница между символической ссылкой и жесткой ссылкой и когда их следует использовать .