Logo de TuX - Linux Kernel

Cómo crear un enlace duro (hard link) en Linux

 
 

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

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.
 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.