Buscar Ficheros de Gran Tamaño

Cómo buscar y listar todas aquellos ficheros de imágenes de gran tamaño, digamos mayor de 1Mb. Con un sencillo comando desde el terminal de linux en el servidor es posible.

Search files

En uno de los proyectos en los que trabajo manejamos una gran cantidad de imágenes que se publican en la web, y es posible su visualización mediante un visor, que permite sencillas transformaciones en las mismas. Las imágenes se van cargando en el servidor de forma periódica ya que existen diversas fuentes de las mismas. En la última carga aparecieron un gran número de ellas cuyo tamaño era excesivo para su publicación en Internet, lo que conllevaba problemas en el visor de las mismas, así como numerosos errores de memoria en el servidor, en el momento de aplicar transformaciones. El dilema era cómo buscar y listar todas aquellos ficheros de imágenes de gran tamaño, digamos mayor de 1Mb.

Lo primero que se nos ocurrió fue desarrollar un proceso en lenguaje java que leyera todas las rutas de las imágenes de la base de datos y se recorriera fichero a fichero para consultar su tamaño. Si era mayor, almacenábamos su nombre y ruta, junto con su tamaño en una lista que, al finalizar el proceso, guardábamos en un fichero de texto.

Al final no es necesario implementar lo descrito en el párrafo anterior, con un simple comando de la shell de linux, fuimos capaces de generar el listado. Abrimos un terminal y tecleamos lo siguiente:

find /MOUNTFIC/PERGAMINOS_INCUNABLES_1  -type f -size +1000k -printf "%h/%f\t%s\n" >> imagenesGrandes.txt

El comando anterior busca en el directorio pasado en el primer parámetro y en todos sus subdirectorios, todos los ficheros, para eso escribimos que el tipo sea f (-type f), cuyo tamaño sea superior a 1Mb (-size +1000k). El código que se muestra a continuación, -printf “%h/%f\t%s\n” formatea la salida, escribe: la ruta + nombre del fichero + tabulador + tamaño del fichero. Separamos cada fichero con un retorno de carro. Con el código >> imagenesGrandes.txt vamos agregando los registros al fichero del mismo nombre.

En el caso de que tengamos las imágenes en varios directorios podemos lanzar este comando varias veces sobre diferentes directorios. El contenido del fichero de texto con el listado de los ficheros no se va machacando con cada ejecución, sino que se va añadiendo al final. Si quisiéramos que se machacara la información deberíamos escribir un sólo signo de mayor que (> imagenesGrandes.txt).

Deja un comentario

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