Métodos de pago Abuse

Eliminar enlaces en Linux

10.04.2022, 01:05

Un enlace en Linux es un archivo especial que hace referencia a otro archivo o directorio. De esta forma, un archivo puede estar en varios sitios a la vez. Cuando se elimina el archivo original, se conserva el enlace al mismo. Esto puede provocar fallos y, en general, atascar el sistema.

Cómo eliminar un enlace

Para empezar, vamos a explicar el método para comprobar que el fichero es realmente un enlace. Esto se hace convenientemente utilizando la utilidad ls. Después, veremos tres métodos de eliminación, cada uno con sus propias peculiaridades.

Comprobación de que se trata de un enlace

Con la ayuda de ls es conveniente ver información sobre el fichero. Para utilizar la utilidad, dale la opción -l y especifica la ruta. Tomemos como ejemplo el fichero ~/symlinks/link_1:

$ ls -l ~/symlinks/link_1

Eliminar enlaces en Linux

Puede comprobar si hay enlaces en todo un catálogo:

$ ls -l ~/symlin

Eliminar enlaces en Linux

Un archivo que no se necesita se marca con una flecha característica después de su nombre.

Uso de Rm

El comando rm puede utilizarse para eliminar cualquier archivo del sistema de archivos de Linux, incluidos los enlaces. Es decir, es adecuado para nuestra tarea. Es importante mencionar aquí que el archivo o directorio original no se verá afectado como resultado de la eliminación del enlace.

En el terminal, ejecute el comando:

$ rm ~/symlinks/link_1

Eliminar enlaces en Linux

Además, para obtener información detallada sobre el procedimiento, añade la opción -v al comando:

$ rm -v ~/symlinks/link_1

Eliminar enlaces en Linux

Además, puede comprobar si el enlace ha desaparecido del directorio. Para ello, utilice el comando ls descrito anteriormente.

Eliminar enlaces en Linux

Ahora ya sabe cómo eliminar un enlace simbólico de Linux.

Utilización de UNLINK

La utilidad unlink está diseñada para eliminar ficheros del sistema de ficheros Linux. Sólo necesita especificar la ruta al enlace:

$ unlink ~/symlinks/link_1

Eliminar enlaces en Linux

Dentro del ámbito de la tarea que nos ocupa, rm y unlink funcionan de forma casi idéntica. Ahora pasemos al último método.

Usando Find

Con la ayuda del comando find puedes buscar y eliminar enlaces en un directorio determinado. Esto significa que no necesitas usar ls adicionalmente.

Eliminar enlaces en Linux

A diferencia de las dos opciones anteriores, tiene características bastante avanzadas, por ejemplo, establecer criterios de búsqueda. Pero la sintaxis tampoco es tan sencilla por este motivo.

Para buscar, es necesario especificar un directorio y algunos parámetros:

$ find ~/symlinks/ -type l -print

Eliminar enlaces en Linux

El parámetro -type l es necesario para seleccionar sólo enlaces simbólicos, -print para mostrar el nombre completo. Y con la ayuda de -maxdepth puede especificar la profundidad de la búsqueda por directorios anidados. Si especifica 1, la búsqueda se realizará sólo en el directorio en sí, sin anexos:

$ find ~/symlinks/ -maxdepth 1 -type l -print

Eliminar enlaces en Linux

Una vez que haya muchos enlaces en el directorio, puede especificar un patrón de búsqueda para el comando find. Como ejemplo, tomemos una situación en la que queremos encontrar sólo enlaces ocultos con una fecha de última modificación no superior a 30 días:

$ find ~/data/ -type l -name ".*" -mtime -30 -print

Eliminar enlaces en Linux

Se han añadido dos criterios

  • -name - buscar por nombre.
  • -mtime - por hora de modificación.

Todos los enlaces encontrados se pueden borrar según el patrón especificado. Para ello -print se sustituye por -delete:

$ find ~/data/ -type l -name ".*" -mtime -30 -delete

Eliminar enlaces en Linux

Al final de la instrucción vamos a tratar la búsqueda y eliminación de enlaces rotos que no llevan a ninguna parte, por ejemplo, después de borrar el archivo o directorio original. El parámetro -xtype l es adecuado para este propósito. -print no es necesario para la salida:

$ find ~/broken_links/ -xtype l

Eliminar enlaces en Linux

Como resultado, todos los enlaces rotos se mostrarán en el terminal. Para eliminarlos, añada -delete al final del comando:

$ find ~/broken_links/ -xtype l -delete

Eliminar enlaces en Linux

Esto completa las instrucciones para eliminar un enlace en Linux.