我正在尝试编辑资料。使用vi编辑器列出,但在保存文件时得到以下错误:
/etc/apt/sources.list" E212: Can't open file for writing
我正在尝试编辑资料。使用vi编辑器列出,但在保存文件时得到以下错误:
/etc/apt/sources.list" E212: Can't open file for writing
当前回答
对我来说,有一个很简单的解决办法。我试图在一个不存在的文件夹中编辑/创建一个文件。因为我已经在我试图编辑/创建文件的文件夹中。
即PWD文件夹/文件
正在打字
sudo vim folder/file
很明显,它在文件夹中寻找文件夹,但无法保存。
其他回答
这种情况经常发生在我身上,我打开一个根文件写作:
而不是失去所有的改变,重新打开与sudo。请看这个演示如何保存这些更改:
一次设置演示,为低级用户创建一个根拥有的只读文件:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
首先以普通用户身份打开文件:
vi temp.txt
然后对文件做一些更改,它会警告你它是只读的。使用此命令。
:w !chmod 777 %
然后写入文件:
:wq!
扩展权限并保存文件。您需要使用感叹号,因为您是作为次要用户编辑根文件。
该命令的功能说明:
w表示写入文件。砰的一声意味着开始解释为外壳。Chmod表示更改权限,777表示所有地方的完全权限。百分比表示当前文件名。
它应用了变化。它会问你是否要重新加载。按“O”表示“Ok”。不要重新加载,否则会丢失所做的更改。
您只需要使用根访问权限访问Gemfile。前六世:
命令:
sudo su -
然后:
vi ~/...
:wq或:wq!vi编辑器不退出意味着您对pwd没有权限,请根据您所创建的权限检查权限。 例子 您具有root权限
==> sudo vi /etc/ansible/hosts .使用实例 :wq现在它的工作
或者你可能在只读装载的fs上
Vim有一个内置的帮助系统。运行:h E212在Vim中打印如下:
由于某种原因,无法创建或覆盖正在写入的文件。 原因可能是您没有在该目录中写入的权限 或者文件名无效。
您可能希望以超级用户身份使用sudo vim file编辑该文件。或者如果你不想离开你现有的vim会话(现在有适当的sudo权限),你可以运行:
:w !sudo tee % > /dev/null
这将保存文件。