Linux-Mandrake: Manual de Referencia | ||
---|---|---|
Anterior | Capítulo 10. El sistema de archivos de Linux: ext2fs (EXTended 2 FileSystem) | Siguiente |
La mejor forma de comprender qué hay detrás de esta noción de vínculo es por medio de un ejemplo. Creemos un archivo (regular):
$ pwd /home/reina/ejemplo $ ls $ touch a $ ls -il a 32555 -rw-rw-r-- 1 reina reina 0 sep 10 08:12 a |
La opción -i del comando ls imprime el número de i-nodo, que es el primer campo de la salida. Como puede ver, antes de crear el archivo a, no había archivo alguno en el directorio. El otro campo de interés es el tercero, que es el contador de vínculos del archivo.
De hecho, el comando touch a puede separarse en dos acciones distintas:
creación de un i-nodo, al cual el sistema le atribuyó el número 32555, y cuyo tipo es el de un archivo regular,
creación de un vínculo a este i-nodo, llamado a, en el directorio corriente, /home/fg/ejemplo. Por lo tanto, el archivo /home/fg/ejemplo/a es un vínculo al i-nodo numerado 32555, y por el momento es sólo uno: el contador de vínculos está en 1.
Pero ahora, si ingresamos:
$ ln a b $ ls -il a b 32555 -rw-rw-r-- 2 reina reina 0 sep 10 08:12 a 32555 -rw-rw-r-- 2 reina reina 0 sep 10 08:12 b $ |
habremos creado otro vínculo al mismo i-nodo. Como puede ver, no hemos creado archivo alguno denominado b, sino que sólo hemos agregado otro vínculo al i-nodo numerado 32555 en el mismo directorio y lo denominamos b. Puede ver en la salida de ls -l que el contador de vínculos para el i-nodo ahora vale 2, y ya no vale 1.
Ahora, si hacemos:
$ rm a $ ls -il b 32555 -rw-rw-r-- 1 reina reina 0 sep 10 08:12 b $ |
vemos que incluso cuando hemos borrado el "archivo original", el i-nodo todavía existe. Pero ahora el único vínculo a él es el archivo denominado /home/reina/ejemplo/b.
Por lo tanto, un i-nodo está vinculado si y sólo si está referenciado por un nombre al menos una vez en cualquier directorio. [1]. También los directorios se almacenan en i-nodos, pero su contador de vínculos, contrariamente a todos los otros tipos de archivos, es el número de sub-directorios que contiene. Existen al menos dos vínculos por directorio: el directorio en sí mismo (.) y su directorio padre (..).
Ejemplos típicos de archivos que no están vinculados (es decir, no tienen un nombre) son las conexiones de red: nunca verá el archivo correspondiente a su conexión con el sitio web de Linux-Mandrake en su árbol de archivos, sin importar que directorio intente. Similarmente, cuando usa una tubería en el shell, el archivo que corresponde a la misma existe, pero no está vinculado.
[1] | Si este directorio se encuentra en el mismo sistema de archivos que el i-nodo. |
Anterior | Inicio | Siguiente |
El sistema de archivos de Linux: ext2fs (EXTended 2 FileSystem) | Subir | Tuberías "anónimas" y tuberías nombradas |