Действительно ли безопасно удалить все поврежденные символьные ссылки во всей системе Linux?

Интересно, попробовал ли я это:

$ sudo -i  # root user
# cd /     # system folder
# find . -xtype l -delete    # delete all broken link in system

Было бы безопасно удалить каждую разорванную символьную связь везде?

4
задан 24 August 2019 в 22:19

1 ответ

Вы не должны пытаться удалить все разорванные символьные связи со своей системой, особенно не с find . -xtype l -delete или любой такой тихий механизм.

Неразборчивое удаление поврежденных символьных ссылок имеет (поскольку я принимаю решение считать их), три главных плохих эффекта:

  1. Это удаляет поврежденные символьные ссылки, которые корректны, таким образом создавая проблему, где не было того. Несмотря на термин "повреждаемый", это не обязательно неправильно или ошибка иметь символьную ссылку, цель которой не существует (или не может быть пересечен к), и иногда на это даже полагаются.

    Поврежденная символьная ссылка может быть корректной, когда цель - то, какие потребности быть созданным, когда цель сознательно существует некоторые, но не все время, и в различных других ситуациях, которые странно кажущееся, но разумное использование поврежденных символьных ссылок для блокировки (т.е. синхронизация через процессы), где нет никакой значимой цели.

  2. Это удаляет поврежденные символьные ссылки, которые не должны существовать, который мог бы походить на хорошую вещь - но это делает так, не занимаясь расследованиями или обращаясь к тому, что заставило их быть поврежденными во-первых.

    Например, возможно, Вы использовали некоторую процедуру удаления, которая оставляет файлы, которые должны быть удалены. В этом случае удаление просто неработающие ссылки не очистило бы ничто больше.

  3. Это удаляет поврежденные символьные ссылки, которые являются неправильными, но где проблема должна быть решена посредством некоторого другого действия, чем удаление их.

    Например, возможно, цель символьной ссылки должна быть создана или переименована, или возможно символьная ссылка должна быть заменена или (для символьных ссылок с относительными путями) перемещенный.

Для более подробной информации обо всех сценариях, а также некоторых не покрытых выше, видят, что ответ Gilles на Является там оборотной стороной к удалению всех разорванных символьных связей в системе? (на Unix. SE).

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

Разумно использовать find . -xtype l узнать о разорванных символьных связях. Но Вы не должны пытаться удалить их всех.

4
ответ дан 1 December 2019 в 09:43

Другие вопросы по тегам:

Похожие вопросы: