eliminar duplicados disco

Eliminar fichero y todos sus enlaces en Linux


Los enlaces están muy bien hasta el día que decides hacer limpieza en el disco 😏

Tengo el disco duro de la NAS lleno de enlaces duros a ficheros que ocupan demasiado espacio por lo que, al hacer limpieza, no basta con eliminar aquel que me estorba sino que necesito borrar las distintas “copias” que existen para que el espacio quede realmente disponible en el equipo.

Por fortuna, resolver el problema no es tan complicado como puede parecer, y aquí os cuento cómo…

Lo único que necesitamos conocer es el iNodo que le corresponde a las distintas copias que he realizado del fichero y podemos obtenerlo con el parámetro -i del comando ls

ls -li /tmp

localizar ficheros duplicados

NOTA: observa que hay dos ficheros (original.txt y copia.txt) con el mismo valor de inode (copia.txt es un enlace duro a original.txt 😉 )

Anotamos el valor de inodo (en el ejemplo hablamos del 16) y, gracias al comando find (y su parámetro inum) solicitamos que se borren todos los ficheros que tengan como inodo el valor que nos interesa (16)

find /tmp -xdev -inum 16 -exec rm {} \;

Donde:

  • inum indica el número de inode que estamos buscando (en nuestro ejemplo el 16)
  • xdev es para que no busque en otros sistemas de archivos que podamos tener enlazados y/o montados
  • exec rm {} permite lanzar el comando rm sobre los distintos ficheros ({}) que vaya encontrando (vimos un ejemplo de uso del parámetro exec en el siguiente artículo, igual te sirve de utilidad)
  • /tmp pedimos que busque en la carpeta temporal del sistema pero podrías hacerlo en cualquier otra. OJO: en el ejemplo los dos ficheros (original.txt y copia.txt) están en el mismo directorio (/tmp) pero podrían estar en directorios de distinta “profundidad” (y no suponer ningún problema para el comando find)
  • \; no olvides ponerlo si quieres que funcione correctamente el exec rm {} 😉

Conclusión

Pequeña anotación para eliminar cualquier fichero y todos los enlaces duros que pudiese tener liberando completamente el espacio que ocupan en disco.

Y tú…

  • ¿Conoces otra forma de eliminar todas las copias de un archivo?
  • ¿Has usado en alguna ocasión enlaces duros y/o simbólicos?
  • ¿Sabrías indicar la diferencia entre enlaces simbólicos y duros?

4 comentarios en “Eliminar fichero y todos sus enlaces en Linux

  1. Hola a mi lo de los enlaces duros siempre me ha parecido un dolor de cabeza cuando se hacen backups y sincronización. De repente empiezas a copiar y te falla y es el enlace dichoso.

    Dicho esto gracias por compartir la info, muy útil como siempre.

    Me gusta

    1. Y lo son compañero, pero con la NAS (curiosamente) no me servían los enlaces blandos o simbólicos para lo que estaba haciendo así que no me queda otro remedio que crearlos duros y, de aquellos polvos me encuentro en este “lodazal” 😅

      Dejo aquí está chuleta por si le sirve a otro o incluso a mí cuando me vuelve a tocar hacer limpieza 😉

      Me gusta

  2. me es interesante tu artículos y como los explicas, pero desearía que el color de tus escritos o sea tu tipografía fuese de un color mas fuerte para poder leer y entender mejor, no critico tu manera de escribir sino las letras son muy difusas para mi, muy agradecido estaré si pudiera corregir esto

    Me gusta

    1. Muchas gracias Miguel por tu comentario que entiendo ayuda a mejorar el blog.
      Utilizando WP.com poco me deja hacer pero he optado por cambiar la tipografía (no me deja cambiar el color y/o el estilo de las letras) con la esperanza de que mejore la legibilidad.
      Quedo a la espera de noticias.
      Muchas gracias, Miguel

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .