Enlaces Linux

Lo que llamamos enlaces es un mecanismo que proporcionan la gran mayoría de sistemas operativos. Los enlaces no son más que un puente a un fichero o un directorio perteneciente al sistema, como una referencia que podemos poner en cualquier sitio que nos interese y que actúa como un acceso directo a cualquier otro.

Este mecanismo nos permite acceder a distintos directorios y ficheros de forma más rápida, sin tener que desplazarnos por la jerarquía de directorios. Por ejemplo, si habitualmente necesitamos acceder al directorio:/usr/local/share/ podríamos crearnos en nuestro directorio home un enlace a ese directorio con:

$ ln -s /usr/local/share atajo

Con esto crearemos un enlace simbólico llamado atajo que apunta /usr/local/share/. Podemos ver si lo hemos creado bien haciendoun listado detallado:

$ ls -l atajo lrwxrwxrwx 1 nacx nacx 16 jun 19 16:58 atajo -> /usr/local/share/

Aquí podemos comprobar que el enlace apunta realmente donde nosotros queremos. Podemos observar también como el primer carácter en el bloque de permisos es una l, lo que nos indica que el ficehro es un enlace.

Es importante remarcar que si accedemos al directorio por el atajo y luego hacemos un cd .. volveremos al directorio donde está el atajo y no al directorio superior.

Podemos eliminar el enlace simbólico que acabamos de crear con:

$ unlink atajo

Enlaces simbólicos y enlaces fuertes

En el ejemplo, hemos mencionado el término enlace simbólico. Los enlaces simbólicos significan que tan sólo estamos creando un apuntador o puente hacia el ficehro o directorio, de forma que si eliminásemos el fichero destino el enlace no apuntaría a ninguna parte. Los enlaces simbólicos los creamos añadiendo el parámetro -s al comando ln.

Si omitimos este parámetro se crearía lo que se llama un enlace fuerte (o hard link) que, a diferencia de los enlaces simbólicos hace un duplicado del fichero. Internamente no es exactamente un duplicado del fichero, sinó dos i-nodos que apuntan a los mismos datos, pero puede verse de forma abstracta como una copia del ficehro. La ventaja de este tipo de enlaces es que si se borra una de las copias la otra aún se conserva. A pesar de esto, este tipo de enlace no se utiliza demasiado ya que complica la gestión y manipulación de los ficheros (siempre es mejor tener una sola copia de cada fichero). Además, si hacemos un enlace fuerte de un directorio, todos los ficheros y subdirectorios que contuviera también se deberían referenciar. Es por este motivo que sólo root puede hacer enlaces fuertes de directorios. Otra diferencia es que con un enlace simbólico podemos ver a qué fichero estamos apuntando (tal y como hemos hecho en el ejemplo anterior), mientras que con un enlace fuerte no (debido a su implementación interna).

Tutorial elaborado por Nacx para ADSLAyuda.com