miércoles, 29 de abril de 2015

Creando enlaces simbólicos

Los enlaces simbólicos fueron creados para superar las dos desventajas de los enlaces duros: Los enlaces duros no pueden salir de su dispositivo físico y tampoco pueden enlazar directorios, sólo archivos. Los enlaces simbólicos son un tipo especial de archivo que contiene un puntero de texto apuntando al archivo o directorio de destino.

Crear enlaces simbólicos es similar a crear enlaces duros:

[me@linuxbox playground]$ ln -s fun fun-sym
[me@linuxbox playground]$ ln -s ../fun dir1/fun-sym
[me@linuxbox playground]$ ln -s ../fun dir2/fun-sym

El primer ejemplo es muy sencillo, simplemente añadimos la opción “-s” para crear un enlace simbólico en lugar de un enlace duro. Pero ¿qué pasa con los dos siguientes? Recuerda, cuando creamos un enlace simbólico, estamos creando un texto describiendo dónde está el archivo de destino con respecto al enlace simbólico. Es más fácil verlo si observamos el resultado de ls:

[me@linuxbox playground]$ ls -l dir1
total 4
-rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard
lrwxrwxrwx 1 me me 6 2008-01-15 15:17 fun-sym -> ../fun

El listado para fun-sym en dir1 muestra que es un enlace simbólico con una “l” en el primer carácter del primer campo y que apunta a “../fun”, lo cual es correcto. En cuanto a la localización de fun-sym, fun está en el directorio superior. Ten en cuenta que, la longitud del archivo de enlace simbólico es 6, el número de caracteres de la cadena “../fun” en lugar de la longitud del archivo al que está apuntando.

Cuando creamos enlaces simbólicos, puedes usar rutas absolutas:

ln -s /home/me/playground/fun dir1/fun-sym

o rutas relativas, como hicimos en el anterior ejemplo. Usar rutas relativas es más recomendable porque permite que un directorio que contiene enlaces simbólicos pueda ser renombrado y/o movido sin romper los enlaces.

Además de archivos normales, los enlaces simbólicos también pueden enlazar directorios:

[me@linuxbox playground]$ ln -s dir1 dir1-sym
[me@linuxbox playground]$ ls -l
total 16
drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir1
lrwxrwxrwx 1 me me 4 2008-01-16 14:45 dir1-sym -> dir1
drwxrwxr-x 2 me me 4096 2008-01-15 15:17 dir2
-rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun
-rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard
lrwxrwxrwx 1 me me 3 2008-01-15 15:15 fun-sym -> fun

No hay comentarios:

Publicar un comentario