Introducción
Los enlaces duros (hard link) asocian dos o más ficheros compartiendo el mismo inodo, esto hace que cada enlace duro sea una copia exacta del resto de ficheros enlazados, tanto en los datos como en los permisos, propietario, grupo, etc. Cuando se modifica uno de los enlaces o el fichero original, los cambios afectan al resto de los enlaces.
Nota: Los enlaces duros no pueden hacerse contra directorios y tampoco fuera del propio sistema de ficheros.
En sistemas UNIX/Linux también existen los enlaces simbólicos, también conocidos como enlaces blandos (Soft Links) o Symlinks. Si quieres saber como crear un enlace simbólico, en ZeppelinuX hemos publicado el artículo Cómo crear un enlace simbólico en Linux.
Características principales de los enlaces duros
- Solo se pueden hacer entre ficheros. No se pueden hacer entre directorios.
- No se pueden hacer entre distintos sistemas de ficheros.
- Comparten el número de inodo.
- Si se borra el fichero original la información no se pierde.
- Son copias exactas del fichero original. Los cambios aplicados a uno de ellos o al fichero original, afectan a todos.
Creando un enlace duro (hard link)
La sintaxis genérica para crear un enlace duro es la siguiente:
$ ln TARGET LINK_NAME |
- TARGET: Nombre del archivo existente al que le crearemos el enlace duro.
- LINK_NAME: Nombre del enlace duro.
Veamos un ejemplo:
$ ln test.txt enlace-duro-a-test.txt |
Si listamos ambos archivos con el comando ls -li, observamos que ambos comparten el mismo inodo:
$ ls -li 786433 -rw-r--r-- 2 mortadelo mortadelo 0 jun 21 21:27 enlace-duro-a-test.txt 786433 -rw-r--r-- 2 mortadelo mortadelo 0 jun 21 21:27 test.txt |
Se observa en la primera columna que ambos, archivo y enlace, comparten el mismo número de inodo (786433). La tercera columna indica cuantos enlaces duros tiene el fichero, en este caso 2, el archivo original más el enlace.
Si modificamos uno de ellos, los cambios afectan a todos. Por ejemplo, vamos a conceder permiso de ejecución al propietario en el archivo test.txt y veamos que pasa con el enlace:
$ chmod u+x test.txt |
Si volvemos a listar ambos archivos vemos que el cambio ha afectado a ambos, al fichero original y al enlace:
$ ls -li 786433 -rwxr--r-- 2 mortadelo mortadelo 0 jun 21 21:27 enlace-duro-a-test.txt 786433 -rwxr--r-- 2 mortadelo mortadelo 0 jun 21 21:27 test.txt |
Si editásemos el archivo o el enlace, los cambios realizados en el contenido afectarían a ambos.
Configuración de privacidad y de cookies.
Deja una respuesta