cod*_*ark 166 vi ubuntu-11.04
我正在尝试使用vi编辑器编辑sources.list,但在保存文件时出现以下错误:
/etc/apt/sources.list" E212: Can't open file for writing
Run Code Online (Sandbox Code Playgroud)
Zso*_*kai 253
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.
Run Code Online (Sandbox Code Playgroud)
Vim有一个内置的帮助系统.我刚才引用了它的内容:h E212.
您可能希望以超级用户身份编辑该文件sudo vim FILE.或者,如果您不想离开现有的vim会话(现在具有适当的sudo权限),您可以发出:
:w !sudo tee % > /dev/null
Run Code Online (Sandbox Code Playgroud)
这将保存文件.
HTH
Eri*_*ski 26
而不是丢失所有的更改,并重新打开sudo.请参阅此演示文稿,了解如何保存这些更改:
一次安装演示,为较低用户创建一个root拥有的只读文件:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Run Code Online (Sandbox Code Playgroud)
首先以普通用户身份打开文件:
vi temp.txt
Run Code Online (Sandbox Code Playgroud)
然后对文件进行一些更改,它会警告您只读.使用此命令.
:w !chmod 777 %
Run Code Online (Sandbox Code Playgroud)
然后写文件:
:wq!
Run Code Online (Sandbox Code Playgroud)
权限被扩展,文件被保存.您需要感叹号,因为您正在编辑根文件作为较小的用户.
该命令的作用说明:
:w表示写入文件.爆炸意味着开始解释为shell.chmod表示更改权限,777表示无处不在的完整权限.百分比表示当前文件名.
它适用于变化.它会询问您是否要重新加载.按"O"表示"确定".不要重新加载,否则您将丢失更改.
小智 12
对我来说,有一个非常简单的解决方案.我试图在不存在的文件夹中编辑/创建文件.因为我已经在文件夹中,我试图编辑/创建一个文件.
即 pwd folder/file
并打字
sudo vim folder/file
Run Code Online (Sandbox Code Playgroud)
而且显然它正在寻找文件夹中的文件夹并且无法保存.
我在级别 2 中引用了 Zsolt,我输入:
:w !sudo tee % > /dev/null
Run Code Online (Sandbox Code Playgroud)
然后在我的情况下,我仍然无法修改文件,所以它提示添加“!”。所以我输入
:q!
Run Code Online (Sandbox Code Playgroud)
然后它起作用了
| 归档时间: |
|
| 查看次数: |
431967 次 |
| 最近记录: |