Alterar un archivo enlazado en una ubicación parece destruirlo en otra ubicación

0

Tengo un archivo, myfile.txt, ubicado en la carpeta1. Desde el terminal, creo un enlace fijo a este archivo en otro directorio con el comando

ln myfile.txt ~/Documents/folder2

El nuevo archivo aparece como se esperaba en la carpeta2. Cuando examino el inodo para cada archivo usando ls -i, da el mismo número, como se esperaba. Sin embargo, si abro el archivo y lo modifico en la carpeta 1, después de guardar, si abro el archivo desde la carpeta 2, no tiene datos. Al investigar los números de inodo con ls -i, los dos archivos ahora tienen números de inodo diferentes. Así que mi pregunta es, ¿por qué sucede esto? ¿Es este el comportamiento que debería estar esperando? Mi entendimiento fue que los enlaces duros eran archivos realmente indistinguibles, simplemente nombres alternativos para los mismos datos. Por lo tanto, espero que la modificación del archivo después de abrirlo en una ubicación no sea diferente de lo que lo hice desde la otra ubicación. ¿Alguien puede explicar lo que está pasando aquí?

En caso de que sea importante, estoy usando Mavericks y el terminal.app predeterminado.

Alguna información adicional. El comportamiento descrito ocurrió cuando el archivo se editó con TeXShop o TextEdit, así que pensé que era algo al nivel del sistema operativo. Sin embargo, parece que no sucede cuando edito el archivo con Aquamacs.

    
pregunta aberkow 25.06.2015 - 19:10

1 respuesta

1

Un amigo mío encontró la respuesta para mí. Aparentemente, OS X tiene una función writeToFile: atomically, que hace que se realice una copia del archivo editado, luego, al guardar, reemplaza el archivo original con la copia. Como la copia existe en un lugar diferente en el disco duro, tiene un número de inodo diferente. Entonces, después de guardar, el archivo abierto apunta a una nueva ubicación y los datos en el inodo original se eliminan. Esto hace que la otra copia del archivo ahora no apunte a nada en la ubicación original del inodo.

    
respondido por el aberkow 26.06.2015 - 00:48

Lea otras preguntas en las etiquetas