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".
Diferencia entre un soft link y un hard link
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
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
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:
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:
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:
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:
Cómo usar unlink para eliminar un enlace simbólico
La sintaxis es:
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.
Cómo usar rm para remover un symlink
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:
Por ejemplo:
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