Limpieza de symlinks rotos en el sistema
Pequeña nota sobre cómo encontrar y eliminar enlaces simbólicos rotos en el sistema, y por qué puede tener sentido hacerlo.
Características
- Encuentra symlinks rotos en cualquier directorio.
- Permite eliminarlos de forma sencilla.
- Útil para mantener el sistema limpio, especialmente en
/usr,/etco/home.
Requisitos previos
- Tener instalado el paquete
symlinks(apt install symlinksen Debian/Ubuntu). - Acceso root si se va a revisar o modificar
/usr,/etcu otros directorios protegidos.
Buscar symlinks rotos
Para listar todos los symlinks rotos ("dangling") de forma recursiva:
sudo symlinks -r /usr | grep dangling
Ejemplo de salida:
dangling: /usr/share/doc/perl/Changes.gz -> changelog.gz
dangling: /usr/share/doc/python3-libxml2/NEWS.gz -> changelog.gz
...
Eliminar symlinks rotos automáticamente
Comando para eliminarlos de forma directa:
sudo symlinks -r /usr | awk '/dangling/ {print $2}' | xargs -r sudo rm -v
Este comando:
- Busca symlinks rotos.
- Extrae solo la ruta del symlink.
- Llama a
rm -vpara borrarlos uno por uno.
¿Qué mejora exactamente?
Importante: no es una mejora de rendimiento real. Es más una cuestión de orden y mantenimiento.
Errores comunes o decisiones importantes
- No usar
rmdirectamente sin revisar antes qué symlinks se van a borrar. - Asegurarse de que no se trata de enlaces temporales que se recrean al instalar algo.
Resumen breve
- Instalar
symlinkssi no lo tienes. - Revisar con
symlinks -r /ruta | grep dangling. - Borrar con
awk + xargssi estás seguro. - No mejora rendimiento, pero sí la limpieza.
Notas personales
En mi caso, encontré varios enlaces rotos en /usr/share/doc/ y en headers del kernel (/usr/src/.../rust). Los eliminé sin consecuencias.