最近,我在vim中阅读了关于:wq!
命令的here。我不了解它如何在没有写权限的情况下强制写入文件。从理论上讲,这样一来,未经许可就可以编辑根文件。不应该禁止它吗?还是将其写入新文件?
我看到了similar question,但这与动作有关,并且有很大的不同。
P.S。我没有尝试过该命令,因为担心会弄乱系统文件。
答案 0 :(得分:7)
如果您没有该文件的权限(例如,您不拥有该文件),则不会强制执行写入操作。如果您确实拥有该文件的权限,但是它是一个只读文件,则可以强制将其写入。就像您先将文件模式更改为可写,写入更改,然后将文件模式更改回只读一样。
答案 1 :(得分:3)
请不要害怕,vim
不能授予您比操作系统给您更多的权限。如果您碰巧使用w!
打开文件,或者在自己使用vim -R
打开文件之前使文件成为只读文件,那么vim
对于覆盖只读模式很有用。
答案 2 :(得分:1)
您应该考虑目录权限!我的意思是文件所在的目录。 您应该知道,如果您对目录具有写权限,则可以删除其中的所有文件,甚至可以创建具有相同名称的新文件(例如覆盖)!
当你用vi
修改只读文件并插入wq!
写入更改时,会出现两种情况:
w
)权限
w
)权限
q!
。因此目录的写权限对于只读文件很重要!