Original article: Symlink Tutorial in Linux – How to Create and Remove a Symbolic Link

Un Symlink (también llamado enlace simbólico) es un tipo de archivo en Linux que apunta a otro archivo o carpeta del ordenador. Los enlaces simbólicos son similares a los accesos directos en Windows.

Algunas personas llaman a los enlaces simbólicos "enlaces blandos", un tipo de enlace en los sistemas Linux/UNIX, en lugar de "enlaces duros".

Diferencia entre un enlace blando y un enlace duro

Los enlaces blandos son similares a los accesos directos y pueden apuntar a otro archivo o directorio en cualquier sistema de archivos.

Los enlaces duros también son accesos directos para archivos y carpetas, pero no se puede crear un enlace duro para una carpeta o archivo en un sistema de archivos diferente.

Veamos los pasos necesarios para crear y eliminar un enlace simbólico. También veremos qué son los enlaces rotos y cómo eliminarlos.

Cómo crear un enlace simbólico

La sintaxis para crear un enlace simbólico es:

ln -s <ruta al archivo/carpeta para enlazar> <la ruta del enlace donde será creado>

ln es el comando de enlace. El parámetro -s especifica que el enlace debe ser blando. -stambién se puede escribir como -symbolic.

Por defecto, el comando ln crea enlace duro. El siguiente argumento es ruta al archivo (o carpeta) que desea vincular. (Es decir, la ruta al archivo o carpeta para el que desea crear un acceso directo).

Y el último argumento es la ruta del enlace (la ruta para el acceso directo).

Cómo crear un enlace simbólico para un archivo: comando de ejemplo

ln -s /home/james/transacciones.txt trans.txt

Después de ejecutar este comando, podrá acceder al archivo /home/james/transacciones.txt con trans.txt. Cualquier modificación a trans.txttambién se reflejará en el archivo original.

Tenga en cuenta que el comando anterior creará el archivo de enlace trans.txt en su directorio actual. También puede crear un archivo vinculado dentro de una carpeta:

ln -s /home/james/transactions.txt mis-cosas/trans.txt

Debe haber un directorio llamado "mis-cosas" en su directorio actual; de lo contrario, el comando generará un error.

Cómo crear un enlace simbólico para una carpeta: comando de ejemplo

Parecido a lo anterior, usaríamos:

ln -s /home/james james

Esto crearía una carpeta con enlazada simbólicamente llamada 'james' que contendría el contenido de /home/james. Cualquier cambio en esta carpeta vinculada también afectará a la carpeta original.

Cómo eliminar un enlace simbólico

Antes de querer eliminar un enlace simbólico, es posible que desee confirmar que un archivo o carpeta es un enlace simbólico, para que no manipule sus archivos.

Una forma de hacerlo es:

ls -l <ruta-a-supuesto-enlace-simbólico>

Ejecutando este comando en su terminal mostrará las propiedades del archivo. En el resultado, si el primer carácter es una letra L minúscula ('l'), significa que el archivo/carpeta es un enlace simbólico.

También verá una flecha (->) al final que indica el archivo/carpeta al que apunta el enlace simbólico.

Hay dos métodos para eliminar un enlace simbólico:

La sintaxis es:

unlink <ruta-al-enlace-simbólico>

Esto elimina el enlace simbólico si el proceso tiene éxito.

Aunque el enlace simbólico tenga la forma de una carpeta, no agregue '/', porque Linux asumirá que es un directorio y unlink no puede eliminar directorios.

Cómo usar rm para eliminar un enlace simbólico

Como hemos visto, un enlace simbólico es solo otro archivo o carpeta que apunta a un archivo o carpeta original. Para eliminar esa relación, puede eliminar el archivo vinculado.

Por lo tanto, la sintaxis es:

rm <ruta-al-enlace-simbólico>

Por ejemplo:

rm trans.txt
rm james

Tenga en cuenta que intentar hacer rm james/dará un error, porque Linux asumirá que 'james/' es un directorio, lo que requeriría otras opciones como ry f. Pero eso no es lo que queremos. Un enlace simbólico puede ser una carpeta, pero solo nos preocupa el nombre.

El principal beneficio de rm sobre unlink es que puede eliminar varios enlaces simbólicos a la vez, como puede hacer con los archivos.

Cómo encontrar y eliminar enlaces rotos

Los enlaces se rompen cuando el archivo o la carpeta a la que apunta un enlace simbólico cambia de ruta o se elimina.

Por ejemplo, sí 'transacciones.txt' se mueve de /home/jamesa /home/james/personal, el enlace 'trans.txt' se rompe. Cada intento de acceder al archivo resultará en un error 'No existe el archivo o directorio'. Esto se debe a que el enlace no tiene contenido propio.

Cuando descubra enlaces rotos, puede eliminar fácilmente el archivo. Una manera fácil de encontrar enlaces simbólicos rotos es:

find /home/james -xtype l

Esto enumerará todos los enlaces simbólicos rotos en el directorio james, desde archivos hasta directorios y subdirectorios.

Con la opción-delete los eliminará:

find /home/james -xtype l -delete

Conclusión

Los enlaces simbólicos son una característica interesante de los sistemas Linux y UNIX.

Puede crear enlaces simbólicos de fácil acceso para hacer referencia a un archivo o carpeta a los que de otro modo no sería conveniente acceder. Con un poco de práctica, comprenderá cómo funcionan a un nivel intuitivo y lo harán mucho más eficiente en la administración de sistemas de archivos.