Enlace suave (Simbólico) vs Enlace duro

Los enlaces simbólicos (también llamados enlaces suaves) y los enlaces duros son un recurso para acceder a archivos o directorios desde cualquier ubicación. Este artículo describirá las diferencias entre los enlaces simbólicos y los enlaces duros.

Enlaces duros

Los enlaces duros no son un archivo que contiene la ruta al archivo original, sino copias espejo del archivo original al que apuntan. Un archivo y sus enlaces duros no están asociados por el nombre o la ruta, sino por el inodo que almacena información en el archivo, como su ubicación, fecha de creación, permisos y otros atributos. Cada número de inodo es único dentro de un sistema de archivos, lo que impide que los enlaces duros funcionen entre diferentes particiones o sistemas. Los enlaces duros no se pueden usar para enlazar directorios.

A diferencia de los enlaces suaves, los enlaces duros contienen la información a la que enlazan, por lo que si se elimina el archivo original, aún puede acceder a sus datos.

En todos los sistemas Linux se crean enlaces duros y simbólicos con el comando «ln». Para comenzar, primero cree un archivo llamado LinuxHintFile y un directorio llamado LinuxHintDirectory como se muestra en la imagen de abajo:

touch LinuxHintFile
rmkdir LinuxHintDirectory
ls
root@LinuxHint:/home/linuxhint#

Para crear un enlace duro llamado Link2LHFile al archivo LinuxHintFile ejecutado en el terminal:

ln LinuxHintFile Link2LHFile

Después de verificar con ls, vemos el enlace duro que acabamos de crear, si escribe ls-i verá los inodes de los archivos, puede confirmar que el enlace que acabamos de crear tiene el mismo número de inodo que el archivo original, escriba:

ls-i

Como dijimos anteriormente, no podemos usar enlaces duros para directorios ni enlaces a otros volúmenes o sistemas de archivos, vincularemos LinuxHintDirectory con un enlace suave.

Puede encontrar enlaces duros dentro del directorio de trabajo ejecutando:

buscar-type f-links +1

También puede encontrar archivos por inodos, para esta ejecución:

buscar . -aluminio <InodeNumber>

Como se puede ver se encuentran tanto el archivo original y el enlace duro compartir el mismo número de inodo.

Enlaces suaves

A diferencia de los enlaces duros, los enlaces suaves no son copias del archivo original, contienen la ruta al archivo original, debido a esto, si se elimina el archivo original, el enlace suave o el enlace simbólico apuntarán a que ningún archivo se convierta en un enlace roto o en un enlace huérfano, lo que significa que si pierde el archivo de origen, si lo elimina o mueve, el enlace simbólico perderá el acceso a la información, mientras que con el enlace duro la información permanece a pesar de la eliminación del archivo de origen porque es una copia completa y exacta de ese archivo.

También en contraste con los enlaces duros, los enlaces simbólicos no comparten el mismo inodo con el archivo original, por eso los enlaces simbólicos pueden cruzar volúmenes y sistemas de archivos mientras que los enlaces duros no pueden. Los enlaces simbólicos se pueden usar para vincular directorios mientras que con enlaces duros no es posible.

Los enlaces simbólicos también se crean con el programa ln, pero para que el enlace sea simbólico/suave necesitamos especificar el parámetro-s, para crear un enlace simbólico al directorio LinuxHintDirectory llamado LHDLink run:

ln-s LinuxHintDirectory LHDLink

Y luego ejecute ‘ls-i’ para verificar que se creó correctamente:

Como vemos en este caso, se creó el enlace simbólico, pero tiene un diferente número de inodo que el archivo original.

Podemos listar enlaces simbólicos dentro de un directorio con el comando «ls-l»

En la imagen de arriba podemos ver en los permisos del primer archivo el prefijo «l» para enlaces simbólicos, el final de la línea también muestra a qué archivo apuntan los enlaces simbólicos.

Espero que hayas encontrado este artículo útil para entender las diferencias entre enlaces duros y enlaces simbólicos y cómo crearlos. Siga a LinuxHint para obtener más consejos y actualizaciones sobre Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.