
Los enlaces en GNU/Linux son una forma muy práctica de crear un acceso directo a un directorio. Los enlaces se utilizan en muchos casos:
- Crear una ruta a un directorio enterrado en lo más profundo de la jerarquía de archivos.
- Vinculación de bibliotecas.
- Asegurándose de que los archivos estén en ubicaciones constantes (sin tener que mover el original).
- Mantener una «copia» de un solo archivo en múltiples ubicaciones.
En cierto modo, los enlaces nos son simple atajos o acceso directo como en Windows. Dentro del ámbito de Linux, los enlaces tienen más utilidad que la simple creación de un acceso directo a otra ubicación. Un acceso directo es simplemente un pseudo archivo que apunta a la ubicación original del archivo. Por ejemplo, creando un acceso directo en el escritorio de Windows a X carpeta, cuando hacemos clic en ese icono, se abrirá automáticamente el administrador de archivos en la ubicación original. En Linux, cuando creamos un enlace, hacemos clic en ese enlace y se abrirá el enlace en la ubicación exacta en la que se creó.
Explicándolo de otra forma. Digamos, por ejemplo, que tenemos una unidad externa, conectada a nuestro equipo con Windows. En esa unidad hay una carpeta llamada Música. Si creamos un acceso directo de es carpeta en nuestro escritorio, cuando hacemos clic para abrir el acceso directo, el administrador de archivos se abrirá en el directorio de Música en la unidad de disco externo.
Ahora, supongamos que tenemos esa unidad conectada a nuestro equipo con Linux. Esa unidad está montada en, digamos, / data y en esa unidad está la carpeta Música. Creamos un enlace a esa ubicación en nuestro directorio de inicio, por lo que tendremos un enlace de ~/Música que apunta a /data/Música. Si abrimos el acceso directo en nuestro directorio de inicio, se abre el administrador de archivos en ~/Música, en lugar de /data/Música. Cualquier cambio que realicemos en ~/Música se reflejará automáticamente en /data/Música
Tipos de enlaces
En Linux hay dos tipos diferentes de enlaces:
- Enlaces físicos
- Enlaces simbólicos
La diferencia entre los dos es significativa. Con enlaces físicos, también llamados duros, solo se pueden vincular archivos (y no directorios). Un enlace físico no puede hacer referencia a un archivo en un disco o volumen diferente, y hacen referencia al mismo inodo que la fuente original. Un enlace físico continuará siendo utilizable, incluso si se elimina el archivo original.
Los enlaces simbólicos, por otro lado, pueden vincularse a directorios, hacer referencia a un archivo o carpeta en un disco o volumen diferente, existirá como un enlace interrumpido (inutilizable) si se elimina la ubicación original, nombres de archivo y directorios de referencia (a diferencia de ubicaciones físicas), y se les da su propio inodo único.
Trabajando con enlaces físicos
Para crear enlaces físicos en Linux, utilizaremos el comando ln, ejemplo:
Donde “origen” es el archivo original y “nombreEnlace” es el nuevo archivo que se crea para apuntar al original. Entonces, digamos que queremos crear un enlace apuntando a /home/archivo1 y queremos crear el enlace en el directorio ~/. El comando para esto sería:
El comando anterior creará el archivo ~/archivo1 como un enlace fijo a /home/archivo1. Si abrimos ambos archivos, veremos que tienen exactamente el mismo contenido. Si modificamos el contenido en uno, los cambios se reflejarán en ambos. Uno de los beneficios del uso de enlaces físicos es que si se elimina /home/archivo1, ~/archivo1 aún permanecería. Si simplemente deseamos eliminar el enlace, podemos utilizar comando rm de la siguiente manera:
Trabajando con enlaces simbólicos
Para crear enlaces simbólicos, se usa el mismo comando que para los enlaces físicos, añadiendo un parámetro, ln -s:
La principal diferencia entre la creación de enlaces físicos y simbólicos es que usa la opción -s. Vamos a crear un enlace simbólico de ~/archivo2 a /home/archivo2 de manera similar a como lo hemos hecho anteriormente para crear un enlace físico:
El comando anterior creará un enlace simbólico desde ~/archivo2 hacia la ubicación original /home/archivo2. Si actualizamos el archivo en cualquier ubicación, se actualizará en ambos.
También es importante tener en cuenta que se pueden usar enlaces simbólicos para directorios a diferencia de los enlaces físicos. Digamos, por ejemplo, que tiene /home/directorio1 y desea crear un enlace simbólico a ese directorio en ~/. Esto se hace de la misma manera que crear un enlace a un archivo:
El comando anterior creará el enlace ~/directorio1 que apunta a /home/directorio1. A continuación, puede agregar a ese directorio desde cualquier ubicación y el cambio se reflejará en ambos.
A diferencia de los enlaces físicos, si elimina el archivo o directorio original, el enlace simbólico permanecerá; sin embargo, ahora se considerará un enlace roto y no podrá utilizarse. En caso de enlaces físicos, se puede eliminar el original y el enlace permanecerá y aún podrá utilizarse.