it-swarm.com.de

/etc/apt/sources.list "E212: Datei kann nicht zum Schreiben geöffnet werden

Ich versuche, sources.list mit dem vi-Editor zu bearbeiten, erhalte jedoch beim Speichern der Datei folgende Fehlermeldung:

/etc/apt/sources.list" E212: Can't open file for writing
140
codersofthedark
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 verfügt über ein integriertes Hilfesystem. Ich habe gerade zitiert, was es :h E212 sagt.

Möglicherweise möchten Sie die Datei als Superuser als Sudo vim FILE bearbeiten. Oder wenn Sie Ihre bestehende vim-Sitzung nicht verlassen möchten (und jetzt über die richtigen Sudo-Rechte verfügen), können Sie Folgendes ausgeben:

:w !Sudo tee % > /dev/null

Dadurch wird die Datei gespeichert.

HTH

217
Zsolt Botykai

Das passiert mir immer wieder, ich öffne eine Root-Datei zum Schreiben:

Anstatt alle Ihre Änderungen zu verlieren und mit Sudo erneut zu öffnen. Sehen Sie sich diese Demo zum Speichern dieser Änderungen an:

Einmalige Demo-Installation zum Erstellen einer schreibgeschützten Root-Datei für einen niedrigeren Benutzer:

Sudo touch temp.txt
Sudo chown root:root temp.txt
Sudo chmod 775 temp.txt
whoami
el

Öffne die Datei zuerst als normaler Benutzer:

vi temp.txt

Nehmen Sie dann einige Änderungen an der Datei vor, es warnt Sie nur lesend. Verwenden Sie diesen Befehl.

:w !chmod 777 %

Dann schreibe die Datei:

:wq!

Die Berechtigungen werden erweitert und die Datei wird gespeichert. Sie benötigen das Ausrufezeichen, da Sie als Stammbenutzer eine Stammdatei bearbeiten.

Erklärung, was dieser Befehl bewirkt:

Das: w bedeutet, die Datei schreiben. Der Knall bedeutet, als Shell zu interpretieren. chmod bedeutet Änderungsberechtigungen, 777 bedeutet überall volle Berechtigungen. Das Prozent bezeichnet den aktuellen Dateinamen. 

Es gilt die Änderung. Und es fragt, ob Sie neu laden möchten. Drücken Sie "O" für "Ok". Nicht neu laden, sonst verlieren Sie Ihre Änderungen.

24
Eric Leschinski

Oder vielleicht sind Sie auf einem Readonly-Mounted Fs

8
kellogs

Für mich gab es eine einfache Lösung. Ich habe versucht, edit/create eine Datei in einem Ordner zu erstellen, der nicht vorhanden ist. Da ich mich bereits in dem Ordner befand, versuchte ich, eine Datei in Bearbeiten/Erstellen.

d.h. pwd folder/file

und tippte 

Sudo vim folder/file

und ziemlich offensichtlich suchte es nach dem Ordner im Ordner und konnte nicht gespeichert werden.

6
Simon

für mich funktionierte das Ändern des Dateisystems von Read-Only, bevor vim ausgeführt wurde:

bash-3.2# mount -o remount rw /

Ich habe in Level 2 auf Zsolt verwiesen und gebe Folgendes ein: 

:w !Sudo tee % > /dev/null

in meiner Situation kann ich die Datei immer noch nicht ändern. Daher wurde der Zusatz "!" angezeigt. also gebe ich ein 

:q! 

dann klappt es 

1
Oscar Zhou1989

Möglicherweise hat die Datei, auf die Sie zugreifen, bereits eine Auslagerungskopie (oder Auslagerungsversion) im selben Verzeichnis

Sehen Sie also zuerst, ob eine versteckte Datei existiert oder nicht.

Sehen Sie sich beispielsweise den folgenden Dateityp an

.system.conf.swp

Mit dem Befehl 

ls -a

Und dann lösche es mit ...

rm .system.conf.swp

Normalerweise empfehle ich, Superuser-Berechtigungen mit ...

Sudo su
0
Abdullah Khilji

Versuchen Sie sich als root zu verbinden und bearbeiten Sie dann die Datei. Das funktioniert für mich

0
Kazman

Ich habe diese Fehlermeldung erhalten, als ich git rm für eine Datei in einem Verzeichnis verwendet habe. 

Ich war in ~ ~ gitRepo/code/newFeature

In newFeature gab es nur eine Datei. Ich habe ein git rm für diese Datei erstellt und dann versucht, mit vi eine neue Datei myNewFile zu erstellen. 

Ubuntu zeigte mir, dass ich mich immer noch im newFeature-Verzeichnis befinde, aber tatsächlich hatte git rm das gesamte Verzeichnis entfernt.

Ich musste aus vi aussteigen, ein Verzeichnis nach oben navigieren und dann das neueFeature-Verzeichnis neu erstellen. 

0
DatabaseShouter