Diferencia entre hard link y soft link

Diferencia entre hard link y soft link

de Santiago Iturriaga -
Número de respuestas: 0

Hola:

El otro día nos preguntaron a Rodrigo y a mi cuál es la diferencia entre un hard link y un soft link, así que acá va una pequeña descripción de cada uno.

Hard link

Supongamos un sistema de archivos basado en inodos que soporta hard links (con FAT es similar). Un sistema de archivos de este tipo permite tener más de una entrada de directorio (dir entry) apuntando al mismo inodo de un archivo. Estos dir entry son los hard links. En efecto, un inodo podría tener más de un nombre en más de un directorio (recuerden que el nombre del inodo está en el dir entry). Para que esto funcione, el inodo debe tener un contador de hard links en su estructura. Cada vez que se borra un hard link se decrementa ese contador y el inodo se borra solamente cuando ese contador llega a cero. No hay un hard link distinguido para un inodo, simplemente hay uno que se crea primero (cuando se crea el archivo). Todos los hard links de un inodo son iguales.

Soft link

Un soft link es una entrada de directorio que apunta a otra entrada de directorio referenciada por su camino (absoluto o relativo). El link no se hace a nivel de inodo, sino que se hace a nivel de entrada de directorio. En general, en este tipo de links no se guarda un contador de referencias en los dir entries. Por lo que un soft link se puede romper muy fácil si el elemento referenciado es movido, renombrado o borrado. En cualquiera de estos casos el soft link seguirá existiendo pero apuntará a un camino que ya no existe y por lo tanto estará "roto".

Espero que haya quedado un poco más claro.

Saludos,

Santiago.