linux下编辑文件时,有时会遇到想保存退出时,却发现权限不够,需要sudo权限才能保存。这时通常的做法就是将内容存到一个临时文件,然后再用sudo打开,将内容替换成保存在临时文件中的内容。 这样虽然可以实现,但比较麻烦。
其实,在VI/VIM命令模式下结合一些linux简单的命令,就能在不关闭当前文件的情况下达到保存文件的目的
-
输入命令:%! sudo tee % > /dev/null
-
按提示输入sudo权限密码
-
输入"L"(Load File)
-
输入:q命令退出
简单说明如下:
% #VI/VIM编辑的文件内容 ! #管道 sudo #以root权限操作 tee #实现将标准输入的内容写到标准输出和文件中。 % #VI/VIM编辑的文件 > /dev/null #将标准输出重定向到/dev/null(不输出显示)