首先这个错误是自己的大意而引起的,在创建文件的时候用了root权限,发现在vi里面编辑完成后,wq没办法保存并退出,显示错误E212:无法打开并写入文件。以前还没在vi里面运行过命令,切入到尾行模式,w !sudo tee %然后回车,按照提示选择L就行了。
这个命令的原理是这样的
百分号(“%”)代表当前文件名
根据man vim的提示:
:[range]w[rite] !{cmd} Execute {cmd} with [range] lines as standard input
(note the space in front of the ‘!’). {cmd} is
executed like with “:!{cmd}”, any ‘!’ is replaced with
the previous command
“:w !sudo tee %”这条命令的含义是把当前编辑的文件的内容当做标准输入输入到命令sudo tee 文件名里去
也就是sudo保存为当前文件名
==============================================================================================================
后面我去查看了文件夹的权限,果然只有root用户才有写入执行权限,于是改变了下文件夹的拥有者
chown -R groupname.username filename
把组名、用户名和文件名替换掉就可以了
-R就是对filename文件夹下所有的子目录或文件递归执行命令。