/etc/apt/sources.liste " E212: impossible d'ouvrir le fichier pour l'écriture
J'essaie d'éditer des sources.liste en utilisant l'éditeur vi mais en obtenant l'erreur suivante lors de l'enregistrement du fichier:
/etc/apt/sources.list" E212: Can't open file for writing
10 réponses
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 a un système d'aide intégré, je viens de citer ce qu'il dit à :h E212
. Vous pouvez modifier le fichier en tant que superutilisateur comme sudo vim FILE
. Ou si vous ne voulez pas quitter votre session vim existante (et que vous savez avoir les droits sudo appropriés) , vous pouvez émettre:
:w !sudo tee % > /dev/null
Qui va enregistrer le fichier.
HTH
Ce Qui m'arrive tout le temps, j'ouvre un fichier racine pour l'écriture:
Au lieu de perdre tous vos changements et de rouvrir avec sudo. Voir cette démo de la façon d'enregistrer ces modifications:
Démo D'installation unique pour créer un fichier en lecture seule appartenant à la racine pour un utilisateur inférieur:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Ouvrez D'abord le fichier en tant qu'utilisateur normal:
vi temp.txt
Ensuite, apportez quelques modifications au fichier, il vous avertit de sa lecture seule. Utilisez cette commande.
:w !chmod 777 %
Alors écrire le fichier:
:wq!
Les autorisations sont étendues et le fichier est enregistré. Vous avez besoin du point d'exclamation car vous modifiez un fichier racine en tant qu'utilisateur inférieur.
Explication de ce que fait cette commande:
Le :W signifie écrire le fichier. Le bang signifie commencer à interpréter comme shell. chmod signifie changer les autorisations, 777 signifie des autorisations complètes partout. Le pourcentage signifie le nom de fichier actuel.
Il applique le changement. Et il vous demande si vous voulez de re-charger. Appuyez sur " O "pour " Ok". Ne rechargez pas ou vous perdrez vos modifications.
Pour moi, il y avait une solution assez simple. J'essayais de modifier/créer un fichier dans un dossier qui n'existe pas. Comme j'étais déjà dans le dossier que j'essayais de modifier/créer un fichier en.
C'est-à-dire pwd folder/file
Et tapait
sudo vim folder/file
Et plutôt évidemment, il cherchait le dossier dans le dossier et ne parvenait pas à enregistrer.
Essayez de vous connecter en tant que root, puis éditez le fichier. Cela fonctionne pour moi
J'ai référencé Zsolt au niveau 2, j'ai entré:
:w !sudo tee % > /dev/null
Et puis dans ma situation, Je ne peux toujours pas modifier le fichier, donc il a incité à ajouter"!". donc j'entre
:q!
Alors ça marche
Pour moi a travaillé en changeant le système de fichiers de lecture seule avant d'exécuter vim:
bash-3.2# mount -o remount rw /
Il est possible que le fichier auquel vous accédez ait déjà une copie d'échange (ou une version d'échange) dans le même répertoire
Donc d'abord voir si un fichier caché existe ou non.
Par exemple, voir pour le type de fichiers suivant
.system.conf.swp
, En utilisant la commande
ls -a
Et puis, supprimez-le en utilisant ...
rm .system.conf.swp
Habituellement, je recommande de commencer à utiliser les privilèges super utilisateur en utilisant ...
sudo su
J'ai eu cette erreur lorsque je l'ai utilisé git rm
sur un fichier dans un répertoire.
J'étais dans quelque chose comme ~ / gitRepo/code / newFeature
Dans newFeature, il n'y avait qu'un seul fichier. J'ai fait un git rm
sur ce fichier puis j'ai essayé de créer un nouveau fichier myNewFile en utilisant vi.
Ubuntu m'a montré comme étant toujours dans le répertoire newFeature mais en fait git rm
avait supprimé tout le répertoire.
J'ai dû sortir de vi, naviguer dans un répertoire, puis recréer le répertoire newFeature.
Vous avez juste besoin d'accéder à Gemfile avec un accès root. Avant vi
:
Commande:
sudo su -
Puis:
vi ~/...