Buscar Ficheros de Gran Tamaño

Buscar Ficheros de Gran Tamaño

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 una respuesta

Tu dirección de correo electrónico no será publicada.

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

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para su aceptación y la de nuestra política de cookies.

ACEPTAR
Aviso de cookies