Aquí tenemos que enfrentar una incomprensión muy común, 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 i-nodo 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"):
no se puede crear un vínculo a un i-nodo en un directorio que está en un sistema de archivos diferente a dicho i-nodo. La razón es simple: el contador de vínculos se almacena en el i-nodo en sí mismo, y los i-nodos no pueden compartirse entre los sistemas de archivos. Los vínculos simbólicos sí lo permiten;
no se pueden vincular dos directorios, debido a que el contador de vínculos para un directorio tiene un uso especial como hemos visto. Pero Ud. puede hacer que un vínculo simbólico apunte a un directorio y usarlo como si realmente fuera un directorio.
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 Ud. 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.
Anterior | Inicio | Siguiente |
Los archivos "especiales": modo bloque y caracter | Subir | Los atributos de los archivos |