:wq! vim中的命令

时间:2018-09-10 03:16:32

标签: vim root

最近,我在vim中阅读了关于:wq!命令的here。我不了解它如何在没有写权限的情况下强制写入文件。从理论上讲,这样一来,未经许可就可以编辑根文件。不应该禁止它吗?还是将其写入新文件? 我看到了similar question,但这与动作有关,并且有很大的不同。

P.S。我没有尝试过该命令,因为担心会弄乱系统文件。

3 个答案:

答案 0 :(得分:7)

如果您没有该文件的权限(例如,您不拥有该文件),则不会强制执行写入操作。如果您确实拥有该文件的权限,但是它是一个只读文件,则可以强制将其写入。就像您先将文件模式更改为可写,写入更改,然后将文件模式更改回只读一样。

答案 1 :(得分:3)

请不要害怕,vim不能授予您比操作系统给您更多的权限。如果您碰巧使用w!打开文件,或者在自己使用vim -R打开文件之前使文件成为只读文件,那么vim对于覆盖只读模式很有用。

答案 2 :(得分:1)

您应该考虑目录权限!我的意思是文件所在的目录。 您应该知道,如果您对目录具有写权限,则可以删除其中的所有文件,甚至可以创建具有相同名称的新文件(例如覆盖)!

当你用vi修改只读文件并插入wq!写入更改时,会出现两种情况:

  1. 您对该目录有写(w)权限
    • 将删除主文件并写入同名的新文件。
  2. 您没有对该目录的写(w)权限
    • 什么都没发生!您无法写入或修改该文件,您应该退出:q!

因此目录写权限对于只读文件很重要!