Un enlace simbólico (también llamado enlace simbólico) es un tipo de archivo en Linux que apunta a otro archivo o carpeta en su computadora. Los enlaces simbólicos son similares a los accesos directos de 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 suave 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 vínculos físicos también son accesos directos para archivos y carpetas, pero no se puede crear un vínculo físico 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
ln
es el comando de enlace. La -s
bandera especifica que el enlace debe ser suave. -s
también se puede ingresar como -symbolic
.
De forma predeterminada, el ln
comando crea vínculos físicos. El siguiente argumento es path to the file (or folder)
que desea vincular. (Es decir, el archivo o carpeta para el que desea crear un acceso directo).
Y el último argumento es el path to link
mismo (el atajo).
Cómo crear un enlace simbólico para un archivo: comando de ejemplo
ln -s /home/james/transactions.txt trans.txt
Después de ejecutar este comando, podrá acceder al archivo /home/james/transactions.txt
con trans.txt
. Cualquier modificación 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. También puede crear un archivo vinculado en un enlace de carpeta esto:
ln -s /home/james/transactions.txt my-stuffs/trans.txt
Debe haber un directorio ya llamado "my-stuffs" en su directorio actual; de lo contrario, el comando arrojará un error.
Cómo crear un enlace simbólico para una carpeta: comando de ejemplo
Similar a lo anterior, usaríamos:
ln -s /home/james james
Esto crearía una carpeta con enlace simbólico 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 que desee eliminar un enlace simbólico, es posible que desee confirmar que un archivo o carpeta es un enlace simbólico, para no alterar sus archivos.
Una forma de hacer esto es:
ls -l
Ejecutar 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 simlink.
Hay dos métodos para eliminar un enlace simbólico:
Cómo utilizar Desvincular para eliminar un enlace simbólico
La sintaxis es:
unlink
Esto elimina el enlace simbólico si el proceso es exitoso.
Incluso si el enlace simbólico tiene 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 simplemente otro archivo o carpeta que apunta a un archivo o carpeta original. Para eliminar esa relación, puede eliminar el archivo vinculado.
Por tanto, la sintaxis es:
rm
Por ejemplo:
rm trans.txt rm james
Tenga en cuenta que intentar hacerlo rm james/
resultaría en 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 solo nos preocupa el nombre.
El principal beneficio de rm
over unlink
es que puede eliminar varios enlaces simbólicos a la vez, como puede hacerlo con los archivos.
Cómo encontrar y eliminar enlaces rotos
Los enlaces rotos se producen cuando el archivo o la carpeta al que apunta un enlace simbólico cambia de ruta o se elimina.
Por ejemplo, si 'transacciones.txt' se mueve de /home/james
a /home/james/personal
, el enlace 'trans.txt' se rompe. Cada intento de acceder al archivo resultará en un error "No existe tal 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 forma sencilla de encontrar enlaces simbólicos rotos es:
find /home/james -xtype l
Esto mostrará una lista de todos los enlaces simbólicos rotos en el james
directorio, desde archivos hasta directorios y subdirectorios.
Pasar la -delete
opción los eliminará así:
find /home/james -xtype l -delete
Terminando
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 que de otro modo no sería conveniente acceder. Con algo de práctica, comprenderá cómo funcionan estos en un nivel intuitivo y lo harán mucho más eficiente en la administración de sistemas de archivos.