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

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

当前回答

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

而不是失去所有的改变,重新打开与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”。不要重新加载,否则会丢失所做的更改。

其他回答

只需用-打开文件

sudo vi filename.txt

然后修改文件并使用:wq退出

修改其他用户的权限 对于这种类型 Setfacl -m u:用户名:rw文件名

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

即PWD文件夹/文件

正在打字

sudo vim folder/file

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

当我在目录中的文件上使用git rm时,我得到了这个错误。

我在~/gitRepo/code/newFeature

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

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

我必须退出vi,导航到一个目录,然后重新创建newFeature目录。

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