Enlaces simbólicos rotos, cómo encontrarlos y eliminarlos de Ubuntu

diciembre 14, 2020 , 0 Comments

about enlaces simbólicos rotos

En el siguiente artículo vamos a echar un vistazo a cómo encontrar y eliminar los enlaces simbólicos rotos en Ubuntu. Los enlaces simbólicos son una forma de simplificar la gestión de un sistema Gnu/Linux. Estos se utilizan tanto en servidores como en estaciones de trabajo, donde la vinculación de un directorio a otro se usa para que las aplicaciones envíen información a otro lugar en el árbol de directorios.

Un enlace simbólico en sistemas Unix o Gnu/Linux, indica un acceso a un directorio o archivo existente que se encuentra en un lugar distinto dentro de la estructura de directorios. Una modificación realizada utilizando este enlace se reflejará en el original, pero por el contrario, si se elimina el enlace, no se va a eliminar el archivo o directorio al que hace referencia. Otra opción menos usual es utilizar un enlace duro (hard link). En este caso, el borrado del enlace provoca el borrado del archivo o directorio, si era el último enlace duro al fichero.

Una ventaja del enlace simbólico frente a los enlaces duros, es que es posible realizar enlaces simbólicos que apunten a objetos en sistemas de archivos que se hallan en otros dispositivos, o a particiones dentro del mismo dispositivo. El comando utilizado normalmente para gestionar los enlaces (tanto duros como simbólicos) es ln.

Symlinks, una herramienta para gestionar enlaces simbólicos

Existe una aplicación llamada symlinks en la mayoría de los repositorios Gnu/Linux. Esta es una sencilla utilidad de línea de comandos, que proporcionará resultados útiles y opciones para gestionar los enlaces simbólicos. Para poder instalar esta herramienta en Ubuntu, tan solo tendremos que abrir una terminal (Ctrl+Alt+T) y ejecutar el comando:

instalar symlinks

sudo apt install symlinks

Con symlinks podremos utilizar diferentes opciones para trabajar con los enlaces simbólicos. Entre ellas podremos destacar la opción -d, que eliminará los enlaces que se quedan colgados. Otra interesante de conocer es la opción -r, que hará de forma recursiva a través de los subdirectorios cualquier opción que especifiquemos a esta herramienta.

help symlinks

Un ejemplo básico

Para empezar con este ejemplo, primero vamos a crear un enlace simbólico. Esto podremos hacerlo tomando un archivo existente y utilizando el comando ln para vincularlo a un archivo que aún no existe. Los comandos para crear este ejemplo serían los siguientes:

touch archivo-ejemplo.txt

ln -s archivo-ejemplo.txt link-archivo-ejemplo.txt

Después vamos a utilizar el comando ls para comprobar que el enlace que acabamos de crear ya existe en nuestro sistema.

enlace creado

Lo siguiente que haremos será romper el enlace simbólico que acabamos de crear.

rm archivo-ejemplo.txt

enlace roto
Aun que acabamos de eliminar el archivo original, como se puede ver en la anterior captura de pantalla, el comando ls -l aún informa de que el enlace sigue ahí. Aquí es es donde reside el problema, pues este enlace se quedaría colgado de un archivo que ya no existe. Los archivos de este ejemplo, también podrían estar en diferentes directorios, lo que podría hacer que fuese más difícil verificar si el archivo original todavía está allí.

Encontrar y reparar enlaces simbólicos rotos

La forma de arreglar los enlaces simbólicos rotos es simplemente eliminarlos. Es imposible recuperarlos, por lo que solo necesitaremos borrarlos del árbol del directorios.

Para comprobar los enlaces simbólicos rotos vamos a utilizar la herramienta symlinks. No tendremos más que utilizar el siguiente comando:

symlinks .

Es importante fijarse en el punto (.) al final del comando, ya que indica el directorio de trabajo actual. Esto se puede cambiar con cualquier ruta para indicar un directorio en el que estemos intentando buscar. El comando anterior nos va a mostrar una salida como la siguiente:

buscar enlaces rotos

Indica que ‘link-archivo-ejemplo.txt‘ está colgando y que el enlace simbólico está roto. Para eliminarlo solo tendremos que utilizar el mismo comando de antes, añadiéndole la opción -d:

eliminando enlace roto

symlinks -d .

La salida que nos devolverá la terminal mostrará algo similar a la última vez, pero en esta ocasión también incluirá la línea ‘deleted.

Siguiendo con el anterior ejemplo, si no hubiésemos utilizado el último comando, para buscar enlaces simbólicos rotos también podríamos utilizar find de la siguiente manera:

cómo buscar enlaces rotos con find

find . -xtype l

Como ocurría con la herramienta symlinks, el punto (.) representa el directorio de trabajo actual. Para eliminar los enlaces simbólicos rotos, no tendremos más que añadir la opción –delete como se muestra a continuación:

find . -xtype l -delete

Esta comando no va a mostrar ningún resultado, pero si lo ejecutamos de nuevo sin la opción -delete, no veremos nada en pantalla. Esto será un indicativo de que los enlaces simbólicos rotos, se han eliminado.

Desinstalar

Desinstalar symlinks es tan sencillo como instalarlo. Solo necesitaremos abrir una terminal (Ctrl+Alt+T) y ejecutar el comando:

desinstalar symlinks

sudo apt remove symlinks

Con estos sencillos pasos, todos los usuarios podremos encontrar fácilmente enlaces simbólicos rotos, y eliminarlos antes de que puedan causar problemas.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.