在 Linux 系统中,vi
(或其增强版 vim
)是一款常用的文本编辑器。有时,当试图保存对文件的修改时,可能会遇到一些权限问题或其他原因导致无法正常保存。这时,可以使用强制保存的方法。
基础概念:
vi
编辑器有多种模式,其中最常见的是命令模式和插入模式。在命令模式下,可以执行各种命令,包括保存文件。
强制保存的方法:
:w !sudo tee %
命令(适用于 vim
):
这个命令的意思是,先将当前缓冲区的内容通过管道 !
传递给 sudo tee
命令,tee
命令会将接收到的内容写入当前文件,并且由于使用了 sudo
,所以具有了超级用户的权限,可以写入原本权限不足的文件。vi
或 vim
中,按下 Esc
键确保处于命令模式,然后输入以下命令::w !sudo tee %
输入命令后,按 Enter
键,系统可能会提示输入当前用户的密码,输入密码后按 Enter
键,即可强制保存。
:w /tmp/xxx
和 mv
命令:
这种方法适用于当直接保存遇到困难时,可以先将内容保存到一个临时文件中,然后再使用 mv
命令将临时文件移动到原文件位置。vi
或 vim
中,按下 Esc
键确保处于命令模式,然后输入以下命令将内容保存到临时文件::w /tmp/myfile.tmp
保存成功后,退出 vi
或 vim
,然后在终端中使用 mv
命令将临时文件移动到原文件位置,并覆盖原文件:
sudo mv /tmp/myfile.tmp /path/to/original/file
:q!
和 :w
命令组合:
如果只是想放弃当前的修改并重新开始编辑,可以使用 :q!
命令强制退出而不保存修改。但这种方法并不适用于强制保存。如果想先放弃修改,再以超级用户权限打开文件进行编辑,可以这样做::q!
强制退出。sudo vi /path/to/file
以超级用户权限重新打开文件。注意事项:
应用场景:
强制保存通常用于以下情况:
/etc
或 /usr/local
,并且当前用户没有足够的权限进行保存时。领取专属 10元无门槛券
手把手带您无忧上云