我正在尝试编辑资料。使用vi编辑器列出,但在保存文件时得到以下错误:

/etc/apt/sources.list" E212: Can't open file for writing

当前回答

对我来说,有一个很简单的解决办法。我试图在一个不存在的文件夹中编辑/创建一个文件。因为我已经在我试图编辑/创建文件的文件夹中。

即PWD文件夹/文件

正在打字

sudo vim folder/file

很明显,它在文件夹中寻找文件夹,但无法保存。

其他回答

Vim有一个内置的帮助系统。运行:h E212在Vim中打印如下:

由于某种原因,无法创建或覆盖正在写入的文件。 原因可能是您没有在该目录中写入的权限 或者文件名无效。

您可能希望以超级用户身份使用sudo vim file编辑该文件。或者如果你不想离开你现有的vim会话(现在有适当的sudo权限),你可以运行:

:w !sudo tee % > /dev/null

这将保存文件。

修改用户为root

sodu su -

浏览到etc

vi sudoers

在用户特权部分中查找根用户。你会得到它

root ALL=(ALL:ALL) ALL 

为您的用户名做相同的输入。如果你的用户名是“myuser”,那么添加

myuser ALL=(ALL:ALL) ALL

它看起来就像

root ALL=(ALL:ALL) ALL 

myuser ALL=(ALL:ALL) ALL 

保存它。将root用户更改为您的用户。现在就用同样的方法来解决你的sudoers问题

或者你可能在只读装载的fs上

对于我来说,在运行vim之前将文件系统从只读更改为只读:

bash-3.2# mount -o remount rw /

使用sudo预先附加命令。

例如,使用sudo vim textfile.txt代替vim textfile.txt。这样问题就解决了。