用vim打开/etc之类文件夹里文件时,如果没有用sudo打开,就无法将对文件的修改进行保存,此时除了退出之后用sudo重新打开以外,可以采用如下的方法:
:w ! sudo tee %
解释一下:
man vim可以看到:
:[range]w[rite] !{cmd}
Execute {cmd} with [range] lines as standard input
而%则表示当前文件名。
man tee可以看到:
tee - read from standard input and write to standard output and files
tee命令从标准输入流读,写入标准输出流;上面这样做是将文件的内容作为了tee的输入,用sudo写入了该文件本身。
转载于:https://blog.51cto.com/destiny1208/1227842