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

时间:2011-11-24 07:12:23

标签: vi ubuntu-11.04

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

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

15 个答案:

答案 0 :(得分:232)

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。或者,如果您不想离开现有的vim会话(现在拥有适当的sudo权限),您可以发出:

:w !sudo tee % > /dev/null

将保存文件。

HTH

答案 1 :(得分:25)

这种情况一直发生在我身上,我打开一个根文件写作:

而不是丢失所有更改并重新打开sudo。请参阅此演示文稿,了解如何保存这些更改:

一次性设置演示,为较低级用户创建root拥有的只读文件:

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表示写入文件。爆炸意味着开始解释为shell。 chmod表示更改权限,777表示无处不在的完整权限。百分比表示当前文件名。

它适用了变化。它会询问您是否要重新加载。按" O"为"好"。不要重新加载,否则您将失去更改。

答案 2 :(得分:9)

或许您正在使用只读的fs

答案 3 :(得分:8)

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

即。 pwd folder/file

正在输入

sudo vim folder/file
很明显,它正在查找文件夹中的文件夹并且无法保存。

答案 4 :(得分:3)

我参考了2级的Zsolt,我输入了:

:w !sudo tee % > /dev/null

然后在我的情况下,我仍然无法修改文件,因此提示添加“!”。所以我输入

:q! 

然后它起作用

答案 5 :(得分:3)

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

$ kubectl logs -f some-pod-name

答案 6 :(得分:3)

因为目录不存在。

可以使用 :!mkdir -p /etc/apt/ 创建目录。

然后:wq

答案 7 :(得分:2)

将用户更改为root

sodu su -

浏览至其他

vi sudoers

在“用户权限”部分中查找root用户。你会得到

root ALL=(ALL:ALL) ALL 

输入相同的用户名。如果您的用户名是“ myuser”,则添加

myuser ALL=(ALL:ALL) ALL

它看起来像

root ALL=(ALL:ALL) ALL 

myuser ALL=(ALL:ALL) ALL 

保存。将root用户更改为您的用户。现在在遇到sudoers问题的地方尝试同样的方法

答案 8 :(得分:1)

sudo附加命令。

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

您正在访问的文件可能已存在于同一目录中的交换副本(或交换版本)

因此首先要看是否存在隐藏文件。

例如,请参阅以下类型的文件

.system.conf.swp

使用命令

ls -a

然后,使用...

删除它
rm .system.conf.swp

通常,我建议使用...

开始使用超级用户权限
sudo su

答案 11 :(得分:0)

在目录中的文件上使用git rm时出现此错误。

我遇到的是〜/ gitRepo / code / newFeature

在newFeature中,只有一个文件。我对该文件做了一个git rm,然后尝试使用vi创建一个新文件myNewFile。

Ubuntu显示我仍然在newFeature目录中,但实际上git rm已删除了整个目录。

我不得不退出vi,向上导航一个目录,然后重新创建newFeature目录。

答案 12 :(得分:0)

我的目录路径不正确时出现此错误,请确保您的目录名称和路径正确

答案 13 :(得分:0)

更改其他用户的权限 对于那种类型 setfacl -m u:username:rw 文件名

答案 14 :(得分:-2)

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

命令:

sudo su -

然后:

vi ~/...