Los archivos (ficheros o directorios) están formados básicamente por tres elementos:
datos
Es la información propiamente dicha que contiene el fichero o directorio.
i-nodo
Es una estructura de datos que almacena información sobre el archivo y que se identifica por un número entero único (i-nodo). Almacena metadatos como el tamaño, UID, GID, número de enlaces, etc.
nombre de archivo
Es importante entender que aunque un i-nodo es único y apunta a unos datos determinados puede tener diferentes nombres.
Enlace duro (hard link)
Es cada uno de los diferentes nombres asociados a un mismo i-nodo que como hemos dicho apunta a un único contenido. En términos prácticos son distintos nombres que se le pueden dar a un mismo fichero.
Esquema enlace duro |
Características enlaces duros
- El i-nodo y la zona de datos asociada estarán disponibles mientras estén referenciados por algún nombre. Ejemplo, si borras fich_original sigues pudiendo acceder a través de hlink1 y hlink2
- El tamaño de un enlace duro es mínimo porque no es realmente un fichero nuevo sino un puntero sobre el i-nodo
- Los permisos y propiedad de todos los enlaces duros son idénticos que los del original
- Se puede mover un enlace duro pero solo dentro de la misma partición donde se creó
- No es posible crear enlaces duros a carpetas
Las ventajas de uso de los enlaces duros se basan en la capacidad de tener copias de un fichero en diferentes ubicaciones sin que ocupen espacio en el disco y algunas aplicaciones se aprovechan de esta funcionalidad, copias de seguridad incremental, clasificación de información, etc.
Enlace blando (soft link)
Un enlace simbólico es un fichero independiente cuyo contenido (zona de datos) apunta a la ruta del fichero con el que está vinculado. En términos prácticos se trata de un tipo de fichero "especial" que apunta a otro fichero cuyo contenido es diferente al suyo.
Características enlaces blandos
- Cómo la zona de datos del enlace blando apunta la ruta de un fichero, si el fichero se elimina o se mueve a otra ubicación el enlace se rompe.
- El tamaño de un enlace blando ocupa lo que necesita para almacenar la ruta del fichero al que apunta.
- En GNU/Linux los permisos de los enlaces blandos no tienen efecto y están todos activados
- Se puede hacer enlaces blandos a ficheros de cualquier partición o ubicación
- Se permite enlaces blandos a directorios
- Son mas lentos que los enlaces duros
Las ventajas de uso de los enlaces blandos se basan en la capacidad de abreviar rutas y enlazar ficheros y directorios desde cualquier parte, lo que permite por ejemplo a los servicios del sistema referenciar ficheros alejados, expandir el sistema de archivos a otras ubicaciones, sincronizar ficheros etc.