Los vínculos simbólicos y la limitación de los vínculos “duros

Aquí tenemos que enfrentar una concepción comúnmente equivocada, aun entre usuarios de UNIX®, que principalmente se debe al hecho de que los vínculos tal y como los hemos visto (erróneamente llamados vínculos “duros”) sólo están asociados a archivos regulares (y hemos visto que este no es el caso – e incluso que los vínculos simbólicos están “vinculados”). Pero esto requiere que expliquemos primero qué son los vínculos simbólicos (En inglés los vínculos simbólicos se denominan “softlinks”, o más comúnmente “symlinks”).

Los vínculos simbólicos son archivos de un tipo particular que sólo contienen una cadena de caracteres arbitraria, que puede, o no, apuntar a un nombre de archivo existente. Cuando se menciona un vínculo simbólico en la línea de comandos o en un programa, de hecho se accede al archivo al que apunta, si es que existe. Por ejemplo:

$ echo Hola >miarchivo
$ ln -s miarchivo mivinculo
$ ls -il
total 4
169 -rw-rw-r--    1 reina     reina            6 sep 10 21:30 miarchivo
416 lrwxrwxrwx    1 reina     reina            6 sep 10 21:30 mivinculo -> miarchivo
$ cat miarchivo
Hola
$ cat mivinculo
Hola

Puede ver que el tipo de archivo para mivinculo es 'l', por Link (Vínculo) Los derechos de acceso para un vínculo simbólico son insignificantes: siempre serán rwxrwxrwx. También puede ver que este es un archivo diferente de miarchivo, ya que su número de inodo es diferente. Pero se refiere al archivo miarchivo de manera simbólica, por lo tanto cuando ingresa cat mivinculo, en realidad estará imprimiendo el contenido del archivo miarchivo. Para demostrar que un vínculo simbólico contiene una cadena de caracteres arbitraria, podemos hacer lo siguiente:

$ ln -s "No soy un archivo existente" otrovinculo
$ ls -il otrovinculo
418 lrwxrwxrwx    1 reina     reina           20 sep 10 21:43 otrovinculo -> No soy un archivo existente
$ cat otrovinculo
cat: otrovinculo: No existe el fichero o el directorio
$

Pero los vínculos simbólicos existen porque superan varias de las limitaciones de los vínculos normales (“duros”):

Por lo tanto los vínculos simbólicos son muy útiles en muchas circunstancias, y muy a menudo, la gente tiende a usarlos para vincular archivos entre sí, incluso cuando podría haberse usado un vínculo normal. No obstante, una ventaja de los vínculos normales es que Usted no pierde el archivo si borra el “original”.

Finalmente, si ha observado atentamente, sabrá que el tamaño de un vínculo simbólico es simplemente el tamaño de la cadena de caracteres.