GNU/Linux >> Tutoriales Linux >  >> Linux

calcule el espacio total en disco utilizado por archivos de más de 180 días usando find

du no resumiría si le pasa una lista de archivos.

En su lugar, canalice la salida a cut y deja awk Añádelo. Entonces puedes decir:

find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'

Tenga en cuenta que la opción -h para mostrar el resultado en formato legible por humanos ha sido reemplazado por -k que es equivalente al tamaño de bloque de 1K. El resultado se presenta en MB (ver total/1024 arriba).


@PeterT tiene razón. Casi todas estas respuestas invocan un comando (du) para cada archivo, que consume muchos recursos, es lento e innecesario. La forma más sencilla y rápida es esta:

find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'

¿Por qué no esto?

find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1

Linux
  1. Cómo encontrar los principales directorios y archivos (espacio en disco) en Linux

  2. Cómo eliminar los archivos que tienen más de n días SIN utilizar el comando de búsqueda

  3. busque y elimine archivos con espacio usando el comando de búsqueda en Linux

  4. Cómo crear archivos tar para archivos de más de 7 días usando secuencias de comandos de shell de Linux

  5. Encuentra todos los archivos de más de un minuto

Cómo eliminar archivos anteriores a los días especificados en Linux

buscar y eliminar archivos o carpetas con más de x días

¿Cómo se eliminan archivos anteriores a la fecha específica en Linux?

Script Bash para eliminar archivos de más de x días con subdirectorios

¿Encontrar directorios con todos los archivos dentro de más de X?

Búsqueda de archivos de más de x días en un sistema con un cuadro ocupado simplificado