Recently, I read here about the :wq!
command in vim. I don't understand how it can force-write a file without write permissions. This way, theoretically, one would be able to edit root files without permission. Shouldn't it be disallowed? Or does it write into a new file?
I saw a similar question, but that is about motions and is very different.
P.S. I haven't tried the command for fear of messing up system files.
Press Esc to enter Command mode, and then type :wq to write and quit the file. The other, quicker option is to use the keyboard shortcut ZZ to write and quit. In Vi, write means save, and quit means exit.
To save a file in Vim / vi, press Esc key, type :w and hit Enter key.
If you don't have permission to the file (e.g. you don't own the file), then it will not force the write. If you do have permission to the file, but it is a read-only file, then you can force-write it. It's as if you first change the file mode to writable, write your changes, and then change the file mode back to read-only.
Do not be afraid, vim
cannot grant you more rights than the OS would give you anyway. w!
is useful to override read-only mode if you happened to open a file with the vim -R
command or if you had made the file read-only before opening it with vim
for yourself.
You should consider the directory permissions guys! I mean the directory which file is in it. As you should know, if you have write permission on a directory, you could remove all of the files in it, and create new files even with same names (like overwriting)!
When you modify read-only file with vi
and you insert wq!
to write changes, there would be two situations:
w
) permission on the directory
w
) permission on the directory
q!
.So write permission on directory is important for read-only files!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With