/etc/apt/sources.list“E212:无法打开文件进行写入

我正在尝试使用vi编辑器编辑sources.list,但在保存文件时出现以下错误:

/etc/apt/sources.list" E212: Can't open file for writing 
 For some reason the file you are writing to cannot be created or overwritten. The reason could be that you do not have permission to write in the directory or the file name is not valid. 

Vim有一个内置的帮助系统,我只是引用它的内容:h E212 。 您可能想要像sudo vim FILE那样以超级用户的身份编辑sudo vim FILE 。 或者如果你不想离开你现有的vim会话(并且知道有适当的sudo权限),你可以发出:

 :w !sudo tee % > /dev/null 

哪个会保存文件。

HTH

这一直发生在我身上,我打开一个写文件的根文件:

而不是失去所有的变化,并与sudo重新打开。 看到这个如何保存这些变化的演示:

一次安装程序演示为较低的用户创build根拥有的只读文件:

 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”为“好”。 不要重新加载,否则你会失去你的改变。

或者,也许你正在一个只读的FS

对我来说,有一个相当简单的解决scheme。 我试图编辑/创build一个不存在的文件夹中的文件。 正如我已经在文件夹中,我正在尝试编辑/创build一个文件。

pwd folder/file

并正在打字

 sudo vim folder/file 

而显然它正在寻找文件夹中的文件夹,并保存失败。

尝试以root身份连接,然后编辑文件。 这对我有用

我参考了2级的Zsolt,我input:

 :w !sudo tee % > /dev/null 

然后在我的情况下,我仍然不能修改文件,所以它提示添加“!”。 所以我input

 :q! 

那么它的工作

对于我在运行vim之前从Read-Only更改文件系统:

 bash-3.2# mount -o remount rw / 

您只需要以root权限访问Gemfile。 vi之前:

命令:

 sudo su - 

然后:

 vi ~/...