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
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
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
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 ! :)
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.
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.
Lors de l'utilisation de :w !chmod 777 %
Je reçois chmod: changing permissions of ‘filename’: Operation not permitted
...
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.
Cela ne permet pas de répondre à la question. Pour critiquer ou demander des précisions à un auteur, laissez un commentaire sous son article.
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.
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.