%3F.png)
¿Cómo puedo calcular el espacio en disco consumido sólo por algunos archivos de un directorio de forma recursiva?
Respuesta1
find -iname '*.jpg' -print0 | du --files0-from=- -h -c | tail -1
-iname
busca sin distinguir entre mayúsculas y minúsculas-print0
escribeNUL
en lugar de nuevas líneas--files0-from=-
leeNUL
en lugar de nuevas líneas y lee enstdin
lugar de argumentos-h
genera resultados en formato legible por humanos (por ejemplo,1K
en lugar de1024
)-c
genera un total general (por ejemplo,23G
)tail -1
generará solo el total general, suprimiendo los tamaños de archivos individuales
Respuesta2
Con zsh
:
zmodload zsh/stat
stat -LA blocks +blocks -- **/*.jpg(NDoN)
print $(( (${(j[+])blocks} + 0) * 512 ))
Imprimiría el uso acumulado del disco de todos los archivos cuyo nombre termina en .jpg
(incluidos los ocultos con el D
calificador). Tenga en cuenta que si hay varios enlaces físicos al mismo archivo, su uso del disco se contará varias veces (eso es diferente de lo que du
hacen la mayoría de las implementaciones).
Si algunos de los archivos son o tipodirectorio, eso solo contará el uso del disco de los archivos del directorio, no de los archivos que se pueden encontrar al atravesar esos directorios (otra diferencia con du
).