238 votes

/etc/apt/sources.list" E212 : Impossible d'ouvrir le fichier pour l'écriture

J'essaie d'éditer sources.list en utilisant l'éditeur vi mais j'obtiens l'erreur suivante lors de la sauvegarde du fichier :

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

1 votes

J'ai obtenu ce résultat lorsque le répertoire dans lequel j'essayais d'écrire le fichier a dépassé son utilisation maximale du disque.

1 votes

Comme le mentionne un commentaire dans l'une des réponses, vous pouvez obtenir ce résultat si le dossier dans lequel se trouve le fichier a été supprimé ou n'existait pas à l'origine. Recherchez les commandes de changement de répertoire ou de création de répertoire dans vi, en fonction de la situation.

369voto

Zsolt Botykai Points 20615
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 dispose d'un système d'aide intégré. J'ai juste cité ce qu'il dit pour :h E212 .

Vous pourriez vouloir éditer le fichier en tant que super-utilisateur comme sudo vim FILE . Ou si vous ne voulez pas quitter votre session vim existante (et que vous avez maintenant les droits sudo appropriés), vous pouvez émettre :

:w !sudo tee % > /dev/null

Ce qui permettra de sauvegarder le fichier.

HTH

88 votes

Merci. Dans mon cas, j'ai essayé d'éditer un fichier inexistant dans un répertoire inexistant. Il s'avère que si vous pouvez "ouvrir" un fichier inexistant et le créer en l'enregistrant, cela ne fonctionne pas avec un répertoire inexistant. Et maintenant je connais le système d'aide intégré de Vim ! :)

0 votes

Merci. Dans mon cas, j'essayais d'écrire sur un lecteur réseau, et mes permissions réseau avaient partiellement échoué pour cette session d'écran. J'ai fini par écrire dans un fichier temporaire dans /var et par le copier depuis une autre instance ssh vers mon répertoire personnel.

0 votes

Reculé d'un édition invalide .

34voto

Eric Leschinski Points 14289

Cela m'arrive tout le temps, j'ouvre un fichier racine pour écrire :

Au lieu de perdre toutes vos modifications et de les rouvrir avec sudo. Voyez cette démo sur la façon de sauvegarder ces changements :

Démonstration de configuration 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 des modifications au fichier, il vous prévient qu'il est en lecture seule. Utilisez cette commande.

:w !chmod 777 %

Ensuite, écrivez le fichier :

:wq!

Les autorisations sont étendues, et le fichier est enregistré. Le point d'exclamation est nécessaire 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 en tant que shell. chmod signifie changer les permissions, 777 signifie permissions complètes partout. Le pourcentage signifie le nom du fichier actuel.

Il applique le changement. Et il demande si vous voulez recharger. Appuyez sur "O" pour "Ok". Ne rechargez pas ou vous perdrez vos modifications.

1 votes

Chmod : Impossible de changer le mode du fichier sur vimrc : Opération non autorisée

2 votes

Lors de l'utilisation de :w !chmod 777 % Je reçois chmod: changing permissions of ‘filename’: Operation not permitted ...

2 votes

Utilisez :w !sudo chmod 777 % si vous obtenez une erreur de permissions.

19voto

Simon Points 181

Pour moi, il y avait une solution toute simple. J'essayais de modifier/créer un fichier dans un dossier qui n'existait pas. Comme je me trouvais déjà dans le dossier que j'essayais d'ouvrir, je me suis dit que je devais le faire. modifier/créer un fichier dans.

c'est-à-dire pwd folder/file

et tapait

sudo vim folder/file

et de toute évidence, il cherchait le dossier dans le dossier et ne parvenait pas à l'enregistrer.

10voto

kellogs Points 1220

Ou peut-être que vous êtes sur un fs monté en lecture seule.

1 votes

Cela ne permet pas de répondre à la question. Pour critiquer ou demander des précisions à un auteur, laissez un commentaire sous son article.

16 votes

@DmitryG Il n'y a pas de question posée ici, juste une situation énoncée. C'est la raison pour laquelle je me suis retrouvé dans la même situation et je pense que les gens trouveront utile de la connaître.

10voto

Oscar Zhou1989 Points 431

Je me suis référé à Zsolt au niveau 2, j'entre :

:w !sudo tee % > /dev/null

et ensuite, dans ma situation, je ne peux toujours pas modifier le fichier, donc il me demande d'ajouter " !". donc j'ai entré

:q! 

alors cela fonctionne

3 votes

Ne quitte-t-il pas simplement le fichier, sans l'enregistrer ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X