GNU/Linux >> Tutoriales Linux >  >> Linux

suma todos los números de du

En AWK:

{ sum += $1 }
END { print sum }

Entonces

du -b /tmp/* | awk '{ sum += $1 } END { print sum }'

Tenga en cuenta que el resultado no será correcto si los directorios bajo /tmp tienen subdirectorios ellos mismos, porque du produce totales acumulados en directorios y sus hijos.

du -s calculará la suma por usted correctamente (en todos los subdirectorios y archivos en /tmp , incluidos los ocultos):

du -sb /tmp

y du -c calculará la suma de los directorios y archivos enumerados correctamente también:

du -cb /tmp/*

También puede producir una suma total de archivos seleccionados con du -c . Esto funciona incluso si un argumento de du no es un directorio, lo que no es el caso de du -s :

$ du -sb file1 file2
17  file1
18  file2

$ du -cb file1 file2
17  file1
18  file2
35  total

Por cierto, para uso interactivo recomiendo agregar -h opción en lugar de -b o cualquier otro multiplicador de tamaño de bloque. Esto imprimirá el tamaño en formato de unidad legible por humanos.

$ du -ch file1 file2
4.0K    file1
4.0K    file2
8.0K    total

Es simple, puedes usar:

 du -b /tmp/* | awk 'BEGIN{i=0} {i=i+$1} END{print i}'

Si no está usando un comodín, si está usando un nombre de directorio como /tmp , entonces debe evitar la última entrada porque la salida de du -b /tmp es como:

size1 file1
size2 file2
size_total .

Así que ahora deberías evitar esta última entrada, así que usa:

du -b /tmp | awk 'BEGIN{i=0} {if( $2 != "." ){i=i+$1}} END{print i}'

Sin embargo, también puede usar -s , calculará el resumen por usted, entonces no necesita agregar los valores, solo imprima el último, es decir:

du -s directory

Linux
  1. Eliminar todos los correos electrónicos de usuarios raíz de un Shell en Linux

  2. Cómo eliminar todos los directorios .svn de los directorios de mi aplicación

  3. ¿Cómo puedo sumar rápidamente todos los números en un archivo?

  4. Usando awk para imprimir todas las columnas desde la enésima hasta la última

  5. ¿Es posible instalar todos los paquetes desde un repositorio APT?

Enumere o verifique todos los kernels de Linux instalados desde la línea de comandos

Cómo encontrar todas las fuentes instaladas desde la línea de comandos en Linux

Generación de números aleatorios desde la terminal de Linux

Cómo hacer una copia de seguridad de todas las bases de datos MySQL desde la línea de comandos

Cómo quitar todos los caracteres de espacio en blanco de un archivo de texto

iptables elimina todas las solicitudes ICMP entrantes excepto de una IP