Encontrar links rotos

El otro día hablando Robe, compañero del trabajo, me comentó que no podía compilar un paquete en SLES por que el sistema tenía links rotos y ello se lo impedía.
Por defecto GNU/Linux puede crear un link simbólico a un fichero/carpeta/ejecutable, pero cuando éste desaparece (excepto que sea un hard link) el link queda roto, es decir, no tiene un destino válido. Esto se puede ver fácilmente al listar el contenido de una carpeta. Si tenemos el típico alias de ls para que emplee colores, un link roto aparecerá como rojo, mientras que uno correcto, aparecerá en verde. Un ejemplo visual,
shell> ls -l
-rwxr-xr-x 7420 Sep 29 2008 tcpnice
lrwxrwxrwx   31 Nov 25 2010 tcptraceroute -> /etc/alt/tcptraceroute
-rwxr-xr-x 1476 Jul 18 2010 tcptraceroute.db
-rwxr-xr-x 2568 Sep  5 2010 testdisk
lrwxrwxrwx   33 Feb  3 2011 traceroute -> /etc/alt/traceroute.sbin
-rwxr-xr-x  772 May 23 2010 try-from
Estos links rotos no sirven para nada en el sistema, ya que el fichero al que apuntaban ya ha desaparecido, por lo tanto se podrían borrar, el problema es cómo encontrarlos.
Aquí Robe, de linuxtecnico, nos apunta cómo hacerlo empleando find.
shell> find -L /usr -type l
Y tras saber los links que hay rotos, los podemos eliminar tranquilamente también con find.
shell> find -L /usr -type l -exec rm -f {} \;

By Robe (http://www.linuxtecnico.es)


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios