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

Algunas personas llaman a los enlaces simbólicos  "soft links" - un tipo de enlace en los sistemas Linux/UNIX - opuestos a los "hard links".

Los soft Links son similares a los accesos directos, pueden apuntar a otro archivo o directorio en cualquier sistema de archivos.

Los hard links también son accesos directos para archivos y carpetas, pero no se puede crear un hard link para una carpeta o un archivo en un sistema de archivos diferente.

Veamos los pasos 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 del archivo/Carpeta a ser enlazado> <ruta del enlace que se creará>
Crear un enlace simbólico

ln es el comando de enlace. La bandera -s especifica que el enlace debe ser soft. Las -s también pueden ser introducidas como -symbolic.

Por defecto, el comando ln crea hard links. El siguiente argumento es la ruta del archivo (o carpeta) que quieres enlazar. (Es decir, el archivo o carpeta para el acceso directo que quieres crear).

El último argumento es la ruta para enlazarse a sí mismo (el acceso directo).

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

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

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

Tenga en cuenta que este comando de arriba crearía el archivo de enlace trans.txt en su directorio actual. Tú también puedes crear un archivo de enlace en una carpeta que enlace esto:

ln -s /home/james/transacciones.txt mis-cosas/trans.txt
Enlaces

Debe haber un directorio ya llamado "mis-cosas" en su directorio actual - si no, el comando arrojará un error.

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

Como en el caso anterior, usaríamos:

ln -s /home/james james
Enlace Smbólico

Esto crearía una carpeta simbólica 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 remover un enlace simbólico

Antes de que tú quieras eliminar un enlace simbólico, tú puedes confirmar que un archivo o una carpeta es un enlace simbólico, para no manipular tus archivos.

Una forma de hacer esto es:

ls -l <ruta-a-ser-enlace-simbolico>
Listar archivos

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

También verías una flecha (->) al final que indica el archivo/carpeta al que apunta el enlace del símbolo.

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

La sintaxis es:

unlink <ruta-enlace-simbolico>
Desenlazar

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

Incluso si el enlace simbólico tiene forma de carpeta, no añada '/', porque Linux asumirá que es un directorio y el unlink no puede borrar directorios.

Como hemos visto, un enlace simbólico es sólo otro archivo o carpeta que apunta a un archivo o carpeta original. Para eliminar esa relación, tú puedes eliminar el archivo enlazado.

Por lo tanto, la sintaxis es:

rm <ruta-enlace-simbolico>
Remove

Por ejemplo:

rm trans.txt
rm james
Enlaces

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

El principal beneficio de rm sobre unlink es que tú puedes eliminar múltiples enlaces simbólicos a la vez, como tú puedes hacer con los archivos.

Cómo encontrar y eliminar los enlaces rotos

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

Por ejemplo, si "transactions.txt" dentro de la carpeta /home/james, se mueve de /home/james a /home/james/personal, el enlace "transaction.txt" se rompe. Cada intento de acceder al archivo resultará en un error de "No existe tal archivo o directorio". Esto se debe a que el enlace no tiene contenido propio.

Cuando tú descubras enlaces rotos, tú puedes borrar el archivo fácilmente. Una forma fácil de encontrar enlaces simbólicos rotos es:

find /home/james -xtype l

Esto listará todos los enlaces simbólicos rotos en el directorio james - desde los archivos a los directorios y sub-directorios.

Pasando la opción -delete los borrará así:

find /home/james -xtype l -delete

En resumen

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

Tú puedes crear enlaces simbólicos de fácil acceso para referirse a un archivo o carpeta a la que de otra manera no sería conveniente acceder. Con un poco de práctica, tú comprenderás cómo funcionan a nivel intuitivo y te harán más eficiente la gestión de los sistemas de archivos.

Traducido del artículo - Symlink Tutorial in Linux – How to Create and Remove a Symbolic Link de Dillion Megida