Eliminar enlaces simbólicos muertos

Autor: Armonth | El miércoles 02 de agosto del 2006 @ 16:30.

Con el tiempo, tanta actualización y tanta carga de trabajo, en las distribuciones de GNU/Linux acaban quedando restos, apenas unos pocos kilobytes y en especial enlaces simbólicos que apuntaban a ficheros y que ya no existen. Pero restos al fin y al cabo. Una manera de eliminarlos fácilmente es el uso de perl y find. ¡Vamos allá!.

Lo primero es utilizar find y perl para que nos devuelva una lista de enlaces simbólicos (symlinks) muertos:

find / -type l -print | perl -nle 'e || print'

Si el resultado son demasiados, se puede modificar el comando para generar un fichero de texto symlinks-muertos.txt para mirarlos poco a poco o de forma más cómoda:

# Generamos un fichero con los symlinks muertos
find / -type l -print | perl -nle 'e || print' > symlinks-muertos.txt

# Sacamos esos ficheros en una lista (los que realmente no apunten a nada
# saldrán en color rojo gracias al auto-color).
ls -l --color=auto `cat symlinks-muertos.txt`

# Y si todo está correcto, los borramos
rm `cat symlinks-muertos.txt`

Y siempre nos queda la opción de hacer un pequeño bash-script para automatizarlo aunque la lista crece cada mucho tiempo lo considero del todo innecesario.

Comentarios