Introducción
Un enlace simbólico, también conocido como enlace simbólico, es un tipo especial de archivo que apunta a otro archivo o directorio. Es algo así como un atajo en Windows. Un enlace simbólico puede apuntar a un archivo o directorio en el mismo o en un sistema de archivos o partición diferente.
En esta guía, le mostraremos cómo eliminar y eliminar enlaces simbólicos en sistemas Linux /UNIX utilizando los comandos rm
, unlink
y find
Antes de empezar
Para eliminar un enlace simbólico, debe tener permisos de escritura en el directorio que contiene el enlace simbólico. De lo contrario, se mostrará el error "Operación no permitida".
Cuando elimina un enlace simbólico, el archivo al que apunta no se ve afectado.
Use el ls -l
para verificar si un archivo en particular es un enlace simbólico y para encontrar el archivo o directorio al que apunta el enlace simbólico.
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
El primer carácter " l " indica que el archivo es un enlace simbólico. El símbolo “ -> ” muestra el archivo al que apunta el enlace simbólico.
Eliminar enlaces simbólicos con rm
El rm
elimina ciertos archivos y directorios.
Para eliminar un enlace simbólico con el rm
, invoque el comando seguido del nombre del enlace simbólico como argumento:
rm symlink_name
Si tiene éxito, el comando termina en cero y no muestra salida.
Con rm
puede eliminar más de un enlace simbólico al mismo tiempo. Para hacer esto, escriba los nombres de los enlaces simbólicos como argumentos, separados por espacios:
rm symlink1 symlink2
Para recibir un mensaje de confirmación antes de eliminar el enlace simbólico, use la opción -i
rm -i symlink_name
Para confirmar, escriba y
y presione Enter
.
rm: remove symbolic link 'symlink_name'?
Si el enlace simbólico apunta a un directorio, no agregue la /
al final. De lo contrario, obtendrá un error:
rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory
Si el nombre del argumento termina con /
, el rm
asume que el archivo es un directorio. El error se produce porque, cuando se utiliza sin la opción -d
-r
rm
no puede eliminar directorios.
Para estar seguro, nunca use la -r
cuando elimine enlaces simbólicos rm
Por ejemplo, si escribe:
rm -r symlink_to_dir/
Se eliminará el contenido del directorio de destino.
Eliminar enlaces simbólicos con desvincular
El unlink
elimina un determinado archivo. A diferencia de rm
, unlink
solo acepta un único argumento.
Para eliminar un enlace simbólico, ejecute el unlink
seguido del nombre del enlace simbólico como argumento:
unlink symlink_name
Si el comando tiene éxito, no se muestra ningún resultado.
No agregue la barra inclinada final /
al final del nombre del enlace simbólico porque la unlink
no puede eliminar directorios.
Buscar y eliminar enlaces simbólicos rotos
Si elimina o mueve el archivo de origen a una ubicación diferente, el archivo simbólico permanecerá colgando, roto.
Para encontrar todos los enlaces simbólicos rotos en un directorio determinado, ejecute el siguiente comando:
find /path/to/directory -xtype l
/path/to/directory/symlink1
/path/to/directory/subdir/symlink2
El comando enumerará todos los enlaces rotos en el directorio y sus subdirectorios.
Si desea excluir enlaces simbólicos contenidos en subdirectorios, use la opción -maxdepth 1
find
:
find /path/to/directory -maxdepth 1 -xtype l
/path/to/directory/symlink1
-delete
enlaces simbólicos rotos, puede eliminarlos manualmente con rm
o unlink
o usar la opción -delete del comando de find
:
find /path/to/directory -xtype l -delete
Conclusión
Para eliminar un enlace simbólico, utilice el rm
o unlink
seguido del nombre del enlace simbólico como argumento. Al eliminar un enlace simbólico que apunta a un directorio, no agregue una barra al final del nombre del enlace simbólico.