Home - Linux - Redes en Linux - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14
Redes en Linux (III)
por Narciso Cerro, de Piensa
en Linux.
Enlaces de ficheros.-
Los enlaces le permiten dar a un único fichero múltiples nombres. Los ficheros son identificados por el sistema por su numero de inodo. Un inodo es un enlace el cual es el único identificador del fichero para el sistema de ficheros.
Un directorio es una lista de números de inodo con sus correspondientes nombres de fichero. Cada nombre de fichero en un directorio es un enlace a un inodo particular.
Enlaces duros (hard links)
La orden ln es usada para crear enlaces para un fichero.
Usando ls -i, veremos el numero de inodo para el fichero.
# ls -i dietas
22192 dietas
#
Podemos crear otro enlace a dietas, llamado restaurantes:
# ln dietas restaurantes
Con ls -i veremos que los dos ficheros tienen el mismo inodo.
# ls -i dietas restaurantes
22192 restaurantes 22192
dietas
#
Estos enlaces son conocidos como enlaces duros (hard links) porque directamente crean el enlace al inodo. Nótese que solo podemos crear enlaces duros entre ficheros del mismo sistema de ficheros; los enlaces simbólicos (ver más adelante) no tienen esta restricción.
Cuando borra un fichero con rm, esta solamente borrando un enlace a un fichero. Si usael comando:
# rm dietas
Sólo el enlace de nombre dietas es borrado; restaurantes todavía existirá.
Un fichero es solo definitivamente borrado del sistema cuando no quedan enlaces a el. Usualmente, los ficheros tienen un único enlace, por lo que el uso de rm los borra. Pero si el fichero tiene múltiples enlaces, el uso de rm solo borrara un único enlace; para borrar el fichero, deberá borrar todos los enlaces del fichero.
La orden ls -l muestra el numero de enlaces a un fichero (entre otra información).
# ls -l dietas restaurantes
-rw-r-r- 2 root root 12
Aug 5 16:51 restaurantes
-rw-r-r- 2 root root 12 Aug 5 16:50 dietas
#
La segunda columna en el listado, 2, especifica el numero de enlaces al fichero. Así resulta que un directorio no es más que un fichero que contiene información sobre la dirección del enlace al inodo. También, cada directorio tiene al menos dos enlaces duros en el: «.» (un enlace apuntando a si mismo) y «..» (un enlace apuntando al directorio padre).
En el directorio raíz (/), el enlace «..» simplemente apunta a /.
Enlaces simbólicos
Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo.
La orden ln -s crea un enlace simbólico a un fichero. Por ejemplo, si usamos la orden:
# ln -s dietas restaurantes
Usando ls -l vemos que el fichero restaurantes es un enlace simbólico apuntando a dietas.
# ls -l dietas restaurantes
lrwxrwxrwx 1 root root 3
Aug 5 16:51 restaurantes -> dietas
-rw-r-r- 1 root root 12 Aug 5 16:50
dietas
#
Los bits de permisos en un enlace simbólico no se usan (siempre aparecen como (rwxrwxrwx). En su lugar, los permisos del enlace simbólico son determinados por los permisos del fichero «apuntado» por el enlace (en nuestro ejemplo, el fichero dietas).
Funcionalmente, los enlaces duros y simbólicos son similares, pero hay algunas dife-rencias. Por una parte, puede crear un enlace simbólico a un fichero que no está en el mismo dispositivo de almacenamiento; lo mismo no es cierto para enlaces duros. Los enlaces simbólicos son procesados por el núcleo de forma diferente a los duros, lo cual es solo una diferencia técnica, pero a veces importante. 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.
Los enlaces se usan en muchas partes del sistema Linux. Los enlaces simbólicos son especialmente importantes para las imágenes de las librerías compartidas en /lib.
Home - Linux - Redes en Linux - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14