Я запускал скрипт, который перебирал все файлы в моей системе Linux и создавал некоторые метаданные о них, и он выдавал ошибку, когда попадал по неработающей символической ссылке.
Я новичок в * nix, но у меня есть основная идея связывать файлы и как появляются неработающие ссылки. Насколько я знаю, они похожи на мусор на улице. То, что программа, которую я удаляю, не было достаточно умным, чтобы сказать, что менеджер пакетов существует и принадлежит ему, или что-то, что осталось в обновлении. Сначала я начал подправлять скрипт, который я запускаю, чтобы пропустить их, потом подумал: «Ну, мы всегда можем их удалить, пока мы здесь ...»
Я использую Ubuntu 14.04 (Trusty Tahr). Я не вижу никакой причины, чтобы не делать этого, но прежде чем я начну работать над своей системой разработки, есть ли причина, по которой это может быть ужасной идеей? Служат ли сломанные символические ссылки какой-то цели, о которой я не знаю?
Ответы:
Есть много причин для неработающих символических ссылок:
Решение: удалите сломанную символическую ссылку.
Решение: найдите предполагаемую цель и исправьте ссылку.
Решение: найдите нужную цель и исправьте ссылку.
Разрешение: нет, ссылка не везде разорвана.
Разрешение: нет, ссылка не разорвана для всех.
Разрешение: нет. В этом случае удаление ссылки будет вредным.
Если вы можете определить, что символическая ссылка попадает в первую категорию, тогда, конечно, продолжайте и удалите ее. В противном случае воздержитесь.
Программа, которая рекурсивно просматривает каталоги и заботится о содержимом файлов, должна обычно игнорировать неработающие символические ссылки.
источник
Не удаляйте вслепую все висячие символические ссылки. Они могут существовать только для переноса некоторой информации и могут быть безопаснее обычных файлов, поскольку создание символической ссылки является атомарным.
Например, Firefox создает файл блокировки «lock», который является символической ссылкой, значение которой имеет вид, подобный «IP_address: + PID».
источник
И fnord, и веб-сервер Gatling используют файловую систему Unix в качестве своей базы данных конфигурации (в отличие, скажем, от Microsoft IIS, которая использует реестр Windows, или Apache, который использует файл конфигурации со сложным для анализа).
Например, виртуальные хосты - это просто каталоги, а создание нового виртуального хоста так же просто, как
Настройка каких файлов для обслуживания?
Конфигурирование, какие файлы выполнять как CGI, а какие обслуживать?
И наконец (и имеет отношение к этому вопросу): настройка перенаправления?
Теперь у вас есть символическая ссылка,
search.html
которая нигде не указывает, но это важно для работы вашего сайта.источник
Символьная ссылка может указывать на еще пустое место, чтобы принудительно создать создание в определенном месте или имени файловой системы.
Так что нет - не снимайте их вслепую.
источник
Существенным недостатком удаления устаревших символических ссылок является то, что вы теряете ссылку на то место, на которое они раньше указывали, что может быть весьма полезным!
Скажем, у меня есть символическая ссылка на файл с именем "
send_to
", которая указывает на/Users/myname/tmp
то, что/Users/myname/tmp
она не существует.С символической ссылкой , которую я знаю , где этот файл был предназначен , чтобы быть. Например, в этом случае я вижу, что это временный каталог, и если мне нужно «починить» его, я должен рассмотреть временный каталог как место назначения.
Точно так же ссылка «
my_config
», указывающая на/etc/conf_file
это, становится «плохой», посколькуconf_file
она была переименована в файлification_freection, по-прежнему является полезной информацией. Если вы пошли в/etc
каталог и выполнили запросls
и обнаружили, что названный файлconf_file
отсутствует, ноconfirmation_file
его там может быть достаточно, чтобы исправить эту ссылку.источник
Цитата из командной строки Linux (лучшая книга для новичков в Linux, и вы можете скачать ее бесплатно здесь ):
Так что нет, я бы не стал удалять символические ссылки, так как это, безусловно, вызовет головную боль, и вы рискуете серьезно испортить вашу систему.
источник