¿Por qué cambia el valor del inodo cuando editamos en el editor "vi"?

¿Por qué cambia el valor del inodo cuando editamos en el editor "vi"?

Cuando edito un archivo en elvieditor, el valor de inodo del archivo cambia. Pero cuando se edita con el catcomando, el valor del inodo no cambia.

Respuesta1

Cuando quieres modificar un archivo, tienes dos opciones, cada una con sus ventajas e inconvenientes.

  • Puede sobrescribir el archivo en su lugar. Esto no utiliza ningún espacio adicional y conserva los enlaces físicos, los permisos y cualquier otro atributo más allá del contenido del archivo existente. El principal inconveniente de hacer esto es que si sucede algo mientras se escribe el archivo (la aplicación falla o se corta la energía), terminará con un archivo parcialmente escrito.
  • Puede escribir la nueva versión del archivo en un archivo nuevo con un nombre diferente y luego moverlo a su lugar. Esto utiliza más espacio y rompe enlaces físicos, y si tiene permisos de escritura en un archivo pero no en el directorio que contiene, no podrá hacerlo en absoluto. Por otro lado, la versión anterior del archivo se reemplaza atómicamente por la nueva versión, por lo que en cada momento el nombre del archivo apunta a una versión válida y completa del archivo.

Los editores avanzados como Vim o Emacs pueden elegir entre los dos métodos. Cuando utilizan el primer método, normalmente crean primero un archivo de copia de seguridad, que puede recuperarse si el contenido del nuevo archivo no se puede escribir correctamente.

El vi clásico sobrescribe el archivo en su lugar. Entonces el inodo no cambia.

En Vim,como ya lo ha dicho cjm, la elección está controlada por elbackup,backupcopyywritebackupopciones. De forma predeterminada, Vim cambia el nombre del archivo antiguo y luego escribe un archivo nuevo con el nombre original, si cree que puede recrear los atributos del archivo original. Si desea reutilizar el inodo existente (y correr el riesgo de perder datos o perder más tiempo haciendo una copia de seguridad), agréguelo set backupcopy yesa su archivo .vimrc.

Respuesta2

Lo más probable es que haya configurado elrespaldoopción activada yCopia de respaldoa "no" o "breakhardlink".

información relacionada