Enlaces duros y enlaces simbólicos en Linux

Clasificado en Informática

Escrito el en español con un tamaño de 3,13 KB

Enlaces duros (hard links)

Estos enlaces se denominan enlaces duros (hard links) porque directamente crean el enlace al inodo. También hay que tener en cuenta que solamente podremos crear enlaces duros entre ficheros del mismo sistema de ficheros; los enlaces simbólicos no tendrán este tipo de restricciones. Cuando eliminamos un fichero con rm, en realidad, solamente estamos eliminando un enlace a un fichero. Si utilizamos la orden rm fichero, solamente el nombre fichero es eliminado, fichero2 seguirá existiendo. Un fichero estará definitivamente eliminado del sistema cuando no queden enlaces a él. En realidad, la norma es que los ficheros tengan solamente un enlace duro.

Buscar todos los enlaces duros a un fichero

En ciertas ocasiones puede resultar difícil localizar en qué partes del árbol de directorio existen enlaces a determinados archivos. Para encontrarlos lo podemos hacer con la orden find.

Enlaces simbólicos (enlaces blandos)

Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo, es decir, en realidad lo que hacemos es enlazar directamente al nombre del fichero. Esto podría parecerse bastante a lo que Windows nos tiene acostumbrados. Con la orden ln -s creamos un enlace simbólico a un fichero. Por ejemplo:

ln -s archivo archivo2

Hay que tener en cuenta que el nombre del enlace simbólico no soporta rutas completas, por lo que para crearlo, será imprescindible situarse dentro del directorio en el que queramos que quede colocado dicho enlace. Si lo verificamos de nuevo con la orden ls -l vemos que el fichero archivo es un enlace simbólico apuntando a archivo2. Los bits de permisos en un enlace simbólico no se usan (siempre aparecen como rwxrwxrwx). En su lugar, los permisos del enlace simbólico son determinados por los permisos del fichero apuntado. Asimismo, si el fichero apuntado es eliminado, los enlaces simbólicos permanecen, pero ya no serán válidos y carecerán de sentido.

Diferencias entre enlaces duros y simbólicos

Los enlaces duros y simbólicos son similares en su funcionamiento, pero hay algunas diferencias:

  • Pueden crearse enlaces simbólicos a un fichero que no esté en el mismo dispositivo de almacenamiento.
  • Los enlaces simbólicos son procesados por el núcleo de forma diferente a los duros, lo cual es solo una diferencia técnica, pero a veces importante.
  • Los enlaces simbólicos son de ayuda puesto que identifican al fichero al que apuntan; con enlaces duros no es tan fácil saber qué fichero está enlazado al mismo inodo.

Importancia de los enlaces simbólicos

Aunque en un principio no pudiera parecernos que los enlaces valgan para mucho, el sistema operativo los usa muy a menudo. Los enlaces simbólicos son, por ejemplo, especialmente importantes para las imágenes de las librerías compartidas en /lib, lo que facilita mucho la conexión de los diferentes programas con esas librerías.

Entradas relacionadas: