В чем смысл того, что rm по умолчанию не удаляет недоступные для записи файлы?

В чем смысл того, что rm по умолчанию не удаляет недоступные для записи файлы?

В чем смысл того, что rm не удаляет по умолчанию не записываемые файлы? Каждый раз, когда вы хотите удалить файл, который не записываемый для текущего пользователя, но у вас есть разрешение на запись в каталог, вы получаете это предупреждение, и вам нужно нажать `y' для подтверждения удаления:

rm: remove write-protected regular file 

Интересно, почему неперезаписываемые файлы обрабатываются таким особым образом? Мне приходит на ум, что такие файлы обычно являются файлами конфигурации пользователя, которые содержат секретные данные пользователя, такие как зашифрованный пароль, поэтому rm предупреждает перед их удалением. Итак, в чем настоящая причина?

решение1

Это потому, что поведение UNIX в этом случае немного контринтуитивно. Многие люди очень удивляются, когда они помечают файл как только для чтения, и кто-то может его удалить. Вам нужны только права на запись в содержащую его директорию, чтобы удалить файл. rmпросит вас об этом из вежливости, на случай, если вы надеялись, что статус только для чтения защитит его.

Использование -f(силы) заставит его сделать это, не докучая вам. Но используйте это осторожно.

решение2

Я думаю, вы правы, что он запрашивает, потому что он настроен так, чтобы в него не записывали. Если вы удаляете неперезаписываемый файл, вы, по сути, записываете в этот файл. Если вы не хотите получать запрос, вы всегда можете создать псевдоним, который говорит, что rm на самом деле rm -f.

Связанный контент