Thursday Feb 03, 2022

Diferencia entre Hard link y Soft link

Los enlaces en Unix son esencialmente los punteros que se asocian a los archivos y directorios. La principal diferencia entre un enlace duro y un enlace blando es que el enlace duro es la referencia directa al archivo mientras que el enlace blando es la referencia por nombre lo que significa que apunta a un archivo por nombre de archivo.

El enlace duro enlaza los archivos y directorios en el mismo sistema de archivos, pero el enlace blando puede atravesar los límites del sistema de archivos.

Antes de entender los enlaces debemos entender primero el inodo, un inodo es una estructura de datos compuesta por metadatos sobre el archivo como la fecha de creación del archivo, las autorizaciones del archivo, el propietario del archivo y más.

Contenido: Hard link Vs Soft link

  1. Tabla de comparación
  2. Definición
  3. Diferencias principales
  4. Conclusión

Tabla de comparación

Base de comparación Enlace duro Enlace suave
Básico Se puede acceder a un archivo a través de muchos nombres diferentes conocidos como enlaces duros. Se puede acceder a un archivo a través de diferentes referencias que apuntan a ese archivo se conoce como enlace blando.
Validación de enlaces, cuando se borra el archivo original Sigue siendo válido y se puede acceder al archivo. Inválido
Comando utilizado para la creación ln ln -s
Número de nodo Igual Diferente
Puede vincularse A su propia partición. A cualquier otro sistema de archivos incluso en red.
Consumo de memoria Menos Más
Ruta relativa No aplicable Permitido

Definición de Hard link

Los hard links enlazan directamente dos archivos en el mismo sistema de archivos y para su identificación utiliza el número de inodo del archivo. Los enlaces duros no pueden ser implementados en directorios (ya que apuntan al inodo). Cuando se utiliza el comando «ln» para generar un enlace duro, se crea otro archivo en la línea de comandos que puede utilizarse para referirse al archivo original. Tanto el archivo original como el generado tienen el mismo inodo y contenido; por lo tanto, tendrán los mismos permisos y el mismo propietario.

La eliminación del archivo original no influye en el archivo con enlace duro, y se mantendrá un archivo con enlace duro. El inodo contiene un contador, para calcular el número de enlaces duros a sí mismo. Cuando el contador indica un valor 0, entonces el inodo se vacía. Siempre que se haga algún cambio en el enlace duro, se imitará en el archivo original.

Definición de enlace blando

Los enlaces blandos suelen ser una ruta alternativa (o un alias) para el archivo original; también se denominan enlaces simbólicos. Incluye el nombre del «archivo de destino» del enlace, bandera que especifica que se trata de un enlace blando. Cuando se accede a un archivo, el enlace blando lo redirige al archivo de destino a través de la ruta escrita en el asunto del enlace blando.

Estos son muy prácticos en el caso de los sistemas operativos Windows, donde el enlace blando se comporta como accesos directos. La creación y eliminación de los enlaces blandos no afecta al archivo original. Si se elimina el archivo de destino, el enlace blando queda colgando, lo que significa que no apunta a ninguna parte y genera un mensaje de error cuando se accede al archivo de destino. Los enlaces blandos no utilizan el número de inodo, a diferencia de los enlaces duros. Una ruta absoluta o relativa puede formar parte de los enlaces simbólicos.

Diferencias clave entre enlace duro y enlace blando

  1. Un enlace duro es un nombre adicional del archivo original que hace referencia al inodo para acceder al archivo de destino. Por el contrario, el enlace blando es distinto al archivo original y es un alias del archivo original pero no utiliza el inodo.
  2. Cuando un archivo original se borra el enlace blando se vuelve inválido mientras que, un enlace duro es válido incluso si el archivo de destino se borra.
  3. En Linux, el comando utilizado para la creación del enlace duro es «ln». Por el contrario, el comando utilizado para un enlace blando es «ln -s».
  4. El enlace duro tiene el mismo número de inodo a diferencia del enlace blando, donde el archivo de destino y su enlace blando tienen un número de inodo distinto.
  5. Los enlaces duros están restringidos a sus propias particiones, pero los enlaces blandos pueden cubrir diferentes sistemas de archivos.
  6. El rendimiento de los enlaces duros es mejor que el de los enlaces blandos en algunos casos.
  7. La ruta relativa y la ruta absoluta están permitidas en los enlaces blandos. Por el contrario, la ruta relativa no está permitida en un enlace duro.

Conclusión

Un enlace duro no requiere espacio extra y la estera se resuelve más rápido, pero los cambios aplicados a un enlace duro se reflejan en el archivo original. Por otro lado, el enlace blando necesita espacio extra pero cualquier cambio en el enlace blando no afecta al archivo original. Los enlaces blandos están permitidos en los directorios a diferencia de los enlaces duros.

Deja una respuesta

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

Back to Top