8.3. Los vínculos

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 (bueno, de hecho, del i-nodo).

De hecho, el comando touch a puede separarse en dos acciones distintas:

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 es 2, y ya no es 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, bajo UNIX un archivo no tiene nombre alguno; en su lugar, tiene uno o más vínculos en uno o más directorios.

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 subdirectorios 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 Mandrake Linux 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.


Tux sobre Estrella por MandrakeSoft Linux es una marca registrada de Linus Torvalds. Todas las otras marcas registradas y copyrights son la propiedad de sus respectivos dueños.
A menos que se diga lo contrario, todo el contenido de estas páginas y todas las imágenes tienen Copyright de MandrakeSoft S.A. y de MandrakeSoft Inc. 2002.
http://www.mandrakelinux.com/