Enlaces duros y enlaces simbólicos LPIC-1

No son otra cosa que enlaces a ficheros.
Con ellos podemos llamar a un mismo fichero usando varios nombres, los identificará el sistema operativo por su numero de inodo generado de forma semialeatoria.

Un inodo es un enlace identificador único para el sistema de ficheros.
En un directorio, hay múltiples números de inodo correspondientes cada uno de ellos con un nombre de fichero.

La estructura de linux de ficheros se basa en que cada nombre de fichero en un directorio(comunmente llamado en windows carpeta) es un enlace a un inodo concreto.

Enlaces Duros o hard links:
La herramienta para crearlos es “ln”.

ln mienlace prueba1 creará un enlace llamado mienlace que será como el si fuera el mismo fichero prueba1.

ls -i, muestra el inodo de un fichero.

Utilizando ls -i veremos que los dos ficheros tienen el mismo inodo.
# ls -i mienlace prueba1

Se crea directamente un enlace al inodo. Solamente podremos crear enlaces duros entre ficheros del mismo sistema de ficheros.
Cuando eliminamos un mienlace con rm, solamente estamos eliminando un enlace a prueba1 y prueba1 seguirá existiendo.
Un fichero estará definitivamente eliminado del sistema cuando no queden enlaces a el. En realidad, la norma es que los ficheros tengan solamente un enlace duro, que es el nombre propio del fichero apuntando al inodo.

Un modo de saber cuantos enlaces tiene un fichero es con la orden ls -l. En la salida estándar por pantalla, la primera columna indica los permisos y una segunda columna con un número te indicará el número de enlaces del fichero y si es un directorio el número de directorios que contiene.
Por ejemplo:

ls -l mienlace prueba1

-rw-r-r- 2 root root 29 Dic 5 16:00 mienlace

-rw-r-r- 2 root root 29 Dic 5 15:59 prueba12

Por lo tanto acabamos de descrubir que un directorio en linux en realidad es un fichero que contiene información sobre la dirección del enlace a un inodo.
Para complicar la cosa y pensando pensando, descubrimos que cada directorio tiene al menos dos enlaces duros en el:
. (punto) enlace que apunta a si mismo
.. (punto punto) enlace que apunta al directorio padre.
En el directorio raíz (/), el enlace .. (punto punto) simplemente apunta a /. es decir así mismo.

Buscar todos los enlaces duros a un fichero.

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

find / -inum número

Enlaces Simbólicos

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 archivosimbolico prueba2

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 archivosimbolico es un enlace simbólico apuntando a prueba2

ls -l archivosimbolico prueba2

Los bits de permisos en un enlace simbólico no se usan (siempre aparecen como (rwxrwxrwx), son determinados por los permisos del fichero al que apuntas.
Si el fichero apuntado es eliminado, los enlaces simbólicos permanecen, pero ya no serán válidos y carecen de sentido.

Diferencias entre enlaces duros y simbólicos.
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.
Los enlaces simbólicos son de ayuda puesto que identifican al fichero al que apuntan; con enlaces duros no es tan fácil saber que fichero esta enlazado al mismo inodo.
El sistema operativo los usa muy a menudo, Los enlaces simbólicos son 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. Nosotros mismos si queremos instalar el firefox a mano, debemos usar un enlace simbólico.
Os dejo un tutorial de youtube hecho por http://www.nicklabs.com.ar: http://www.youtube.com/watch?v=kokyJwCMdrQ&feature=player_embedded –> podréis ver un buen ejemplo de como se usa un enlace simbólico.

Publicado el noviembre 29, 2011 en Linux y etiquetado en , . Guarda el enlace permanente. Deja un comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: