Символические ссылки, еще называемые мягкими, существуют не только в Windows, но и в Linux. По сути, символическая ссылка в Linux представляет собой файл, который ссылается на другой файл (в Linux вообще все объекты являются файлами). Если файл будет удален, перемещен или переименован, указывающая на него символическая ссылка останется на диске, равно как и удаление символической ссылки не приведет к удалению файла.
В этом есть своя польза, например, по символической ссылке можно определить, где раньше располагался тот ли иной файл. С другой стороны, какой смысл держать на диске битые символьные ссылки, пусть даже и занимающие более чем скромное место?
Не будет ли лучшим их удалить? Особой трудности в Linux это не представляет, в той же Ubuntu символические ссылки легко идентифицируются по фиолетовому значку со стрелкой,
если же ссылка битая, то на нее «накладывается» еще один значок — крестик в красном кружке.
В терминале рабочие симлинки отличаются тем, что имеют бирюзовый цвет, кроме того, после названий мягких ссылок следуют стрелка и имя объекта, на который они ссылаются.
Если ссылка битая, ее название и название объекта, на который она ссылается, будут иметь красный цвет.
Поиск и удаление символических ссылок
Для поиска мягких ссылок в Linux очень удобно использовать команду find, точнее find . -type l, выводящую их список в текущем каталоге и всех вложенных в него папках.
При этом команда с данным набором параметров не различает рабочие и нерабочие ссылки, чтобы получить список только битых ссылок, вместо параметра type нужно использовать параметр -xtype, вот так:
find . -xtype l
Этот способ хорош для поиска битых символических ссылок в домашнем каталоге, в котором вы имеете доступ ко всем файлам, однако, если вы захотите вывести список нерабочих мягких ссылок в корневом каталоге, то вместе с битыми ссылками получите массу ошибок доступа к файлам и папкам, на которые у вас нет разрешений.
SUDO здесь не поможет, решить эту проблему можно сбросив все ошибки в /dev/null.
Добавьте к уже известной команде перенаправление:
find . -xtype l 2>/dev/null
Поскольку символические ссылки занимают очень мало места, их можно вообще не трогать.
Если всё же хотите их удалить, добавьте чрез пробел к указанной выше команде аргумент -delete.
Следует, однако, учитывать, что в некоторых случаях символические ссылки могут использоваться не по прямому назначению, например, как индикатор блокировки файла.
Добавить комментарий