:哇! vim 中的命令

:wq! command in vim

最近,我阅读了 here 关于 vim 中的 :wq! 命令的内容。我不明白它如何在没有写权限的情况下强制写入文件。这样一来,理论上就可以在未经许可的情况下编辑根文件。不应该被禁止吗?还是写入新文件? 我看到了 similar question,但那是关于动作的,非常不同。

P.S。我没有试过这个命令,怕弄乱系统文件。

别害怕,vim 无法授予您比 OS 给您更多的权利。如果您碰巧使用 vim -R 命令打开文件,或者如果您在使用 vim 打开文件之前将文件设置为只读,则 w! 可用于覆盖只读模式。

如果您没有该文件的权限(例如,您不拥有该文件),则不会强制写入。如果您对该文件有权限,但它是一个只读文件,那么您可以强制写入它。就好像您先将文件模式更改为可写,写入您的更改,然后再将文件模式更改回只读。

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

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

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

所以目录写入权限只读文件很重要!