miércoles, 3 de noviembre de 2021

Guardar archivos como root en vim



Cómo guardar archivos como root en vim.



A veces me he encontrado con que edito un archivo con vim sin haber usado sudo, y luego no puedo guardarlo, con un error en pantalla al ejecutar :wq! que dice algo similar a "advertencia: cambiando un archivo de solo lectura".

Si hemos podido leer el fichero significa que podemos guardarlo con otro nombre; no hace falta salir y editar el fichero con sudo. Vim permite hacer esto usando el comando:

:w otro_nombre

No obstante, esta no es la mejor opción, dado que tendríamos que ejecutar una instrucción adicional para reemplazar el archivo que estamos editando:

!sudo mv otro_nombre %

% equivale a poner la ruta del archivo que estamos editando.
! al principio indica a vim que ejecute una instrucción usando el intérprete del sistema.

Para evitar tener que escribir dos instrucciones, podemos ejecutar la siguiente instrucción, todo en uno:

:w!sudo dd of=%

:w ! lo que sigue a ! se ejecuta tomando el búfer (es decir, el archivo) como entrada estándar.
sudo nos permite ejecutar la instrucción con permisos de root.
dd of=% toma la entrada estándar y escribe su contenido en el archivo que estamos editando.

Como usamos sudo, deberemos introducir nuestra contraseña. Luego pulsamos O y despúes Enter.

Como vim permite guardar comandos personalizados, podemos crear el siguiente comando:

cmap w!! w !sudo dd of=%

Así, la próxima vez que editemos un archivo sin haber usado sudo, bastará con ejecutar:

:w!!

Esto nos permitirá guardarlo sin problemas.
0

0 comentarios:

Publicar un comentario