Skip to content
56K

56K

La web de Fanta

Menu
  • Unix/Linux
  • Cacharreo
  • Games
  • Streaming
  • Notas
  • /dev/null
Menu

Readlink y file para comprobar deadlinks

Posted on 04/02/202216/01/2023 by fanta

Readlink y file son buenas opciones si tienes la necesidad de comprobar si un enlace simbólico muerto ( aunque seguramente sabrás que con find /directorio -xtype l puedes buscar enlaces muertos también )

Creamos un directorio llamado fotos en /tmp/fotos así:

$ cd /tmp/
$ mkdir -p fotos
$ touch fotos/foto-test-file.jpg
$ ls -lain fotos/

Si nos fijamos hemos cambiado de directorio (cd) a /tmp de modo que allí normalmente como usuario no-root vamos a poder escribir.
Hemos creado con mkdir un directorio llamado fotos y hemos generado un archivo vacío llamado foto-test-file.jpg

Ahora vamos a crear un enlace simbólico en /tmp/ llamado enlacedemierda así:

$ ln -s /tmp/fotos/ /tmp/enlacedemierda
$ ls -lain

Con «ls -lain» vamos a ver que realmente se trata de un enlace. Se podría quitar la «l» pero si la ponemos no pasa nada y nos recordará a la serie anime «lain».

Veremos que enlacedemierda apunta realmente a /tmp/fotos y una vez lo vemos vamos a mover /tmp/fotos para cambiarlo de nombre a /tmp/fotos2 así:

$ mv /tmp/fotos/ fotos2

Si hacemos un «ls -la» veremos algo así como esto posiblemente:

 

No necesariamente has de ver en rojo eso (colorines), pero lo mismo si. El tema es que el enlace está roto, lo hemos roto.

Lo que apuntaba a:

enlacedemierda -> /tmp/fotos/

Ahora tendría que apuntar a:

enlacedemierda -> /tmp/fotos2/

Pero sigue apuntando a fotos tal y como indicamos nosotros/as/es/… y ese directorio ya no existe.

Aquí es cuando comenzamos. Vamos a usar file para comprobar si un enlace está muerto:

$ file enlacedemierda
enlacedemierda: broken symbolic link to /tmp/fotos/

De modo que «file» nos puede servir para comprobar en un script si un enlace está muerto.

 

Otra forma es con readlink. Vamos con eso.

$ readlink enlacedemierda
$ readlink -e enlacedemierda 

«readlink» sin «-e» nos escupe la ruta canónica (se puede usar para eso) mientras que con «-e» si el enlace está roto no nos escupe resultado.

En resumen. Podemos usar tanto file como readlink para muchas cosas. En esta entrada hemos visto que pueden servir para detectar si un enlace simbólico está muerto.

Saludos cordiales.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Comentarios recientes

  • fanta en i3wm en el ordenador del trabajo con 3 pantallas
  • Punk en i3wm en el ordenador del trabajo con 3 pantallas
  • Twicsy en Eliminar kernels viejos en redhat y liberar espacio en /boot
  • fanta en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • Jorge en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • fanta en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • Camilo en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • eovoltio en Mastodon.madrid se apaga el 12 de Octubre
  • fanta en Time Machine – Las Nuevas Aventuras de la Maquina del Tiempo sobre GNU+Linux
  • Alberto Salvia Novella en Time Machine – Las Nuevas Aventuras de la Maquina del Tiempo sobre GNU+Linux
©2023 56K | Built using WordPress and Responsive Blogily theme by Superb