Buscar y eliminar archivos en una sola línea con find.

borrar archivos con find

find es de esos comandos en linux que demuestran el poder de la terminal de Linux. Se que a veces no parece lo más intuitivo, pero si se domina correctamente, una sola línea en la terminal ahorra mucho tiempo.

Tratando de economizar algo de espacio en varios discos duros me encontré con esos archivitos Thumb.db. Estos archivos generados automáticamente (creo que desde Windows XP) contienen las miniaturas de las imágenes de una carpeta. Entiendo que tienen su propósito, pero en Linux no los ocupo.

Menciono a los archivos Thumb.db como ejemplo, pero este consejo se puede aplicar a cualquier grupo de archivos que pueda encontrar find.

Busca y encuentra.

No es mala idea primero buscar los archivos que se quieren eliminar, digo, solo por seguridad, no vaya a ser que en el primer intento se eliminen archivos que quieres conservar.

Supongamos que quieres buscar en una carpeta con Imágenes todos los archivos Thumbs.db, entonces tecleamos:

find /MiCarpetaConImagenes -name "Thumbs.db"

y te dará como resultado todos los archivos (incluyendo la ruta) que encontró.

/MiCarpetaConImagenes/Carpeta1/Thumbs.db
/MiCarpetaConImagenes/Carpeta2/Thumbs.db
/MiCarpetaConImagenes/Carpeta3/Thumbs.db
.
.
.
/MiCarpetaConImagenes/CarpetaN/Thumbs.db

Si todo parece correcto, entonces pasamos al siguiente paso.

Busca y destruye.

Si quieres eliminar los archivos que encontraste, entonces agrega esto al final de tu comando de búsqueda.

-exec rm -rf {} \;

De esa forma, la instrucción quedaría más o menos así:

find /MiCarpetaConImagenes -name "Thumbs.db" -exec rm -rf {} \;

Y si ejecutan la búsqueda nuevamente, lo más probable es que ya no arroje resultados, pues porque esos archivos ya fueron eliminados.

La opción delete.

En las versiones más modernas de find existe la opción -delete que borra los archivos que encuentra, pero si no funciona, pueden usar el consejo anterior.

Dicho esto, en lugar de agregar la opción -exec con sus argumentos, basta con incluir la opción -delete para borrar los archivos y si quieres ver cuales son los archivos eliminados añade la opción -print.

find /MiCarpetaConImagenes -name "Thumbs.db" -delete -print

Busca y actúa

Como verán find abre un montón de posibilidades. Se pueden buscar archivos para borrarlos, copiarlos, moverlos, jugar con expresiones regulares, bueno, lo que guste y mande. Hay una parte de búsqueda y otra de acción. Lo que quieran hacer con los archivos es posible.

Eliminar archivos de respaldo antiguos

Por ejemplo, se me ocurrió incluir en mi script de respaldos una rutina que elimine los archivos con una antigüedad mayor de 90 días.

find /CarpetaRespaldos/ -type f -mtime +90 -delete -print

El manual de find es muy completo, se los dejo para futuras referencias.

Imagen de David Pennington en Unsplash.

Artículos relacionados (algunos patrocinados)

Agregar texto a una imagen con ImageMagick

Hice un pequeño script en Bash para agregar texto a una imagen con ImageMagick.

agregartexto script en bash | Agregar texto a una imagen con ImageMagick
El script y al mismo tiempo una muestra del resultado.

Bueno en realidad hace un poco más que eso. En el momento en el que se ejecuta, le agrega un texto en la parte inferior derecha de la imagen, si es muy grande la redimensiona y al final la optimiza para que sea de un tamaño adecuado.

Read moreAgregar texto a una imagen con ImageMagick

Controlar el ancho de banda por dirección IP en Linux

El problema

Se me planteó el de problema de intentar controlar el ancho de banda de cada uno de mis clientes de la red. De preferencia por dirección IP y me llevó algo de tiempo encontrar una solución.

El propósito es evitar que un cliente acapare de todo el ancho de banda disponible y anule o limite a los demás.

A lo mejor puede sonar algo trivial, considerando que actualmente existen proveedores de internet que pueden llegar a ofrecer 100 Mbps de descarga o cantidades así, pero en donde estoy solo disponemos de 3 Mbps que tengo que hacer rendir.

Lamentablemente por nuestra ubicación no tenemos otras opciones y si las hay son inestables o costosas, así que no queda más que leer para ver que se puede hacer.

IPCop como tal no ofrece ninguna opción similar, de hecho he considerado varias veces en cambiarme a pFsense, pero le tengo aprecio a esta herramienta, nunca me ha fallado y me parece un poco ingrato cambiarlo por otro software.

Read moreControlar el ancho de banda por dirección IP en Linux