
Cuando edito un archivo en elvi
editor, el valor de inodo del archivo cambia. Pero cuando se edita con el cat
comando, 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
,backupcopy
ywritebackup
opciones. 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 yes
a su archivo .vimrc
.
Respuesta2
Lo más probable es que haya configurado elrespaldoopción activada yCopia de respaldoa "no" o "breakhardlink".