rm默认不删除不可写文件的背后的想法是什么?


13

rm默认不删除不可写文件的背后的想法是什么?每次您要删除当前用户的不可写文件但对目录具有写许可权时,都会收到此警告,并且需要按“ y”确认删除:

rm: remove write-protected regular file 

我不知道为什么以这种特殊方式处理不可写文件?我想到的一件事是,此类文件通常是包含用户机密数据(例如加密密码)的用户配置文件,因此rm在删除它们之前会发出警告。现在,真正的原因是什么?

Answers:


16

这是因为在这种情况下,UNIX的行为有点违反直觉。许多人将文件标记为只读并且有人可以删除它时,会感到非常惊讶。您只需要对包含目录的写权限才能删除文件。 rm请您礼貌地对待它,以防万一您希望只读将保护它。

使用-f(武力)可以做到,而不会打扰您。但是要小心使用。


考虑输入“ rm -rf *”时要小心。
ChuckCottrill

4
我的一个朋友将其称为“快速读取邮件”。:)
kurtm

0

我认为您对它的提示是正确的,因为它被设置为不被写入。如果要删除不可写文件,实际上就是在写该文件。如果不想被提示,则可以始终创建一个别名,说rm实际上是rm -f。


我认为我的答案不正确。我不知道为什么rm首先发出这样的警告,为什么只读文件与可写文件被区别对待。我知道显示此警告时,不知道为什么。
2013年

因为如果您将某些内容设置为只读,则不应更改它。这包括被删除。如果您是root用户,并告诉它无论如何都要删除只读文件,则它想确认您没有做错任何事情。它使您重新考虑您的选择。
13年

1
@Jeight这实际上是不正确的。删除时您没有写文件。您正在写入包含目录。
kurtm

@kurtm你是正确的。那是一个错字,但基本的推理是相同的。
13年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.