Un enlace es una referencia a otro archivo. Los enlaces le dan al mismo archivo múltiples nombres y les permiten vivir en dos o más ubicaciones simultáneamente.
Hay dos tipos de enlaces:
- Enlace suave o enlace simbólico:esto es simplemente un acceso directo al archivo original.
- Enlace duro:Esto apunta a la ubicación de memoria del archivo original.
Esta imagen muestra cómo funcionan los dos tipos de enlaces:
Tanto los enlaces duros como los suaves se crean con el comando ln.
En este tutorial, le mostraré cómo usar el comando ln para crear varios tipos de enlaces en Linux.
Ejemplos del comando ln
La sintaxis del comando ln es simple:
ln [option] target_file link_name
Déjame mostrarte algunos ejemplos del uso del comando ln para crear enlaces en Linux.
1. Crear enlace duro a un archivo
Para crear un enlace fijo a un archivo, puede usar el comando ln sin ninguna opción como esta:
ln target_file link_name
2. Crear enlace suave a un archivo
Para crear un enlace simbólico a un archivo, use la opción -s
con el nombre del archivo de destino y el nombre del enlace
ln -s target_file link_name
La mayoría de los terminales Linux mostrarán el enlace suave en un color diferente junto con el destino al que apunta.
También notará que los enlaces comienzan con l
en lugar del habitual -
para archivos en la vista de lista larga.
Incluso si su terminal no muestra enlaces blandos en diferentes colores, puede identificar los enlaces de esta manera.
3. Crear enlace suave a un directorio
Crear un enlace suave a un directorio es lo mismo que crear un enlace simbólico a un archivo. Solo necesita reemplazar el nombre/ruta del archivo de destino con el nombre/ruta del directorio.
ln -s target_directory link_name
Notará que el color del enlace blando y el enlace duro suele ser diferente en la terminal de Linux. El enlace duro a un directorio no es posible (normalmente).
4. Actualizar un enlace suave existente (o enlace duro)
Puede sobrescribir un enlace existente. De forma predeterminada, si intenta usar un enlace existente para apuntar a un archivo nuevo, se generará un error:
ln: failed to create symbolic link 'soft-link-to-file': File exists
El comando ln tiene dos opciones para este propósito:
-i
:El modo interactivo le pregunta si desea sobrescribir el enlace existente.-f
:El modo de fuerza solo actualiza el enlace existente sin ninguna confirmación.
Suponga que desea forzar la actualización de un enlace simbólico. Esto es lo que puede hacer:
ln -sf new_file existing_soft_link
Mente agregar los s
para enlace suave, de lo contrario, convertirá el enlace suave en enlace duro.
Consejo extra:obtener el archivo original siguiendo una cadena de enlaces
Normalmente, cuando usa el comando ls con -l
opción, muestra el archivo al que apunta.
Pero si hay una cadena de enlaces, no mostrará el archivo original. Por ejemplo, crea un enlace a un archivo y luego crea otro enlace al primer enlace. En la lista larga, el segundo enlace apuntará al primer enlace.
Para encontrar el archivo original de una cadena de enlaces, puede usar readlink -f
de la siguiente manera:
readlink -f soft_link
El -f
options significa 'seguir' como en 'seguir la cadena'.
Esta imagen explica mejor el ejemplo:
¿Por qué necesitamos enlaces?
Ahora que sabe cómo crear enlaces, veamos brevemente por qué necesitamos enlaces. ¿Para qué propósito práctico sirven?
Puede haber varios casos de uso. Digamos que descargó un software que viene con su código y un archivo ejecutable. Mantienes todo en el /opt
directorio. Pero para ejecutar el programa desde cualquier lugar, debe colocar su ejecutable en el /usr/bin
directorio.
Si mueve el ejecutable a este directorio, es posible que no funcione, ya que necesita acceder a parte del código y no encontrará la ruta a estos archivos desde /usr/bin
directorio. Aquí es donde puede crear un enlace a este archivo ejecutable en /usr/bin
directorio.
De esta manera, el programa se puede ejecutar desde cualquier parte del sistema y el ejecutable del programa permanece en su carpeta de programa original.
Los enlaces son una parte esencial de Linux. Los encontrará utilizados en muchos lugares de sus sistemas. Basta con mirar en el /lib
directorio y verá muchos enlaces suaves.
¿Qué sigue?
Recomiendo leer los siguientes artículos relacionados con el concepto de enlaces en Linux:
- ¿Qué son los enlaces blandos?
- Explicación detallada de los enlaces duros
- Encontrar enlaces simbólicos rotos
- Concepto de inodo en Linux
Espero que hayas aprendido a usar el comando ln de manera efectiva en este tutorial. Las preguntas y sugerencias son siempre bienvenidas.