vi - /etc/apt/sources.list "E212: no se puede abrir el archivo para escribir
ubuntu-11.04 (9)
Estoy intentando editar sources.list usando el editor vi pero obteniendo el siguiente error al guardar el archivo:
/etc/apt/sources.list" E212: Can''t open file for writing
Eso me sucede todo el tiempo, abro un archivo raíz para escribir:
En lugar de perder todos tus cambios y volver a abrir con sudo. Vea esta demostración de cómo guardar esos cambios:
Una única demostración de instalación para crear un archivo de solo lectura propiedad de la raíz para un usuario inferior:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Primero abre el archivo como usuario normal:
vi temp.txt
Luego realice algunos cambios en el archivo, le advierte que solo es de lectura. Usa este comando
:w !chmod 777 %
Luego escribe el archivo:
:wq!
Los permisos se expanden y el archivo se guarda. Necesita el signo de admiración porque está editando un archivo raíz como un usuario menor.
Explicación de lo que hace ese comando:
The: w significa escribir el archivo. El bang significa comenzar a interpretar como shell. chmod significa permisos de cambio, 777 significa permisos completos en todas partes. El porcentaje significa el nombre del archivo actual.
Aplica el cambio. Y pregunta si quieres volver a cargar. Presione "O" para "Ok". No recargues o perderás tus cambios.
Es posible que el archivo al que está accediendo tenga una copia de intercambio (o versión de intercambio) que ya esté en el mismo directorio
Por lo tanto, primero ver si existe un archivo oculto o no.
Por ejemplo, vea para el siguiente tipo de archivos
.system.conf.swp
Al usar el comando
ls -a
Y luego, elimínelo usando ...
rm .system.conf.swp
Por lo general, recomiendo comenzar a utilizar privilegios de superusuario utilizando ...
sudo su
Hice referencia a Zsolt en el nivel 2, ingresé:
:w !sudo tee % > /dev/null
y luego, en mi situación, todavía no puedo modificar el archivo, por lo que me sugirió que agregue "!". así que acepto
:q!
entonces funciona
Intenta conectarte como root y luego editar el archivo. Esto funciona para mí
O tal vez estás en un fs montado de solo lectura
Para mí, hubo una solución bastante simple. Estaba intentando editar / crear un archivo en una carpeta que no existía. Como ya estaba en la carpeta en la que intentaba editar / crear un archivo.
es decir, pwd folder/file
y estaba escribiendo
sudo vim folder/file
y, obviamente, estaba buscando la carpeta en la carpeta y no pudo guardarla.
Solo necesita acceder a Gemfile con acceso de root. Antes de vi
:
mando:
sudo su -
entonces:
vi ~/...
para mí trabajó cambiando el sistema de archivos de Solo lectura antes de ejecutar vim:
bash-3.2# mount -o remount rw /
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 tiene un sistema de ayuda integrado, acabo de citar lo que dice :h E212
. Es posible que desee editar el archivo como superusuario, como sudo vim FILE
. O si no desea abandonar su sesión de vim existente (y sabe tener los derechos de sudo adecuados), puede emitir:
:w !sudo tee % > /dev/null
Que salvará el archivo.
HTH