enlace duro


En informática , un enlace fijo es una entrada de directorio (en un sistema de archivos basado en directorios ) que asocia un nombre con un archivo . Todos los archivos deben tener al menos un enlace físico para cada archivo. La creación de un enlace duro adicional tiene el efecto de dar a un archivo varios nombres (quizás también en diferentes directorios), todos los cuales se conectan de forma independiente a los mismos datos en el disco. [1] Esto provoca un efecto de alias : un proceso puede abrir el archivo por cualquiera de sus nombres y cambiar su contenido. Por el contrario, un enlace suave o "atajo" a un archivo no es un vínculo directo a los datos en sí, sino más bien una referencia a un vínculo físico u otro vínculo flexible.

Cada directorio es en sí mismo un archivo especial, solo que contiene una lista de nombres de archivo mantenida por el sistema de archivos. Dado que los directorios en sí mismos son archivos, son posibles múltiples enlaces duros a directorios, lo que podría crear una estructura de directorio circular, en lugar de una estructura ramificada como un árbol . Por esa razón, algunos sistemas de archivos prohíben la creación de enlaces duros a directorios.

Los sistemas operativos compatibles con POSIX , como Linux , Android , macOS y la familia de Windows NT , [2] admiten múltiples enlaces duros al mismo archivo, según el sistema de archivos. Por ejemplo, NTFS admite enlaces duros, mientras que FAT y ReFS no.

Permita que dos enlaces duros, llamados "ENLACE A.TXT" y "ENLACE B.TXT", apunten a los mismos datos físicos. Un editor de texto abre "LINK A.TXT", lo modifica y lo guarda. Cuando el editor (o cualquier otra aplicación) abre "LINK B.TXT", puede ver los cambios realizados en "LINK A.TXT", ya que ambos nombres de archivo apuntan a los mismos datos.

Sin embargo, algunos editores rompen el concepto de enlace duro, por ejemplo, emacs . Al abrir un archivo para editar, por ejemplo, "LINK B.TXT", emacs cambia el nombre de "LINK B.TXT" a "LINK B.TXT~", carga "LINK B.TXT~" en el editor y guarda el contenido modificado. a un "ENLACE B.TXT" recién creado. Ahora, "LINK A.TXT" y "LINK B.TXT" ya no comparten los mismos datos. (Este comportamiento se puede cambiar usando la variable emacs backup-by-copying).

Se puede crear cualquier número de enlaces duros a los datos físicos. Para acceder a los datos, un usuario solo necesita especificar el nombre de cualquier enlace existente; el sistema operativo resolverá la ubicación de los datos reales. Incluso si el usuario elimina uno de los enlaces duros, los datos siguen siendo accesibles a través de cualquier otro enlace que quede. Una vez que el usuario elimina todos los enlaces, si ningún proceso tiene el archivo abierto, el sistema operativo libera el espacio en disco que una vez ocupó el archivo.


Una ilustración del concepto de enlace duro
Ilustración simplificada de enlaces duros en el típico sistema de archivos UN*X. Tenga en cuenta que los archivos "A" y "D" apuntan a la misma entrada de índice en la tabla de inodos del sistema de archivos , lo que hace que su referencia cuente 2.