En mi sistema Ubuntu, usando ext4, du -b file
da el tamaño en bytes de un archivo real, y du -b dir
da el tamaño en bytes del archivo (s) + sobrecarga del directorio. La sobrecarga es, en mi caso, múltiplos de 4096 bytes.
Esta sobrecarga aumenta a medida que aumenta el número de archivos.
Nota: incluso si se eliminan los archivos, la sobrecarga del directorio permanece en el nivel más alto que tenía antes de eliminar los archivos.
No he intentado reiniciar para ver si se revierte, pero en cualquier caso, esto significa que el tamaño del directorio varía según las circunstancias históricas.
El recuento de cada tamaño de archivo puede ser la mejor opción para obtener un valor preciso del tamaño total de los archivos .
El siguiente script totaliza todos los tamaños de archivo (en bytes).
Para OS X, si no tiene la -b
opción para 'du', puede usarla stat
en su lugar. (Si la tiene :) ... La línea comentada muestra la stat
alternativa de Ubuntu a du -b
;
unset total
while IFS= read -r -d $'\0' rf; do
# (( total += $(stat "$rf" | sed -nre 's/^ Size: ([0-9]+).*/\1/p') ))
(( total += $(du -b "$rf" | cut -f 1) ))
done < <(find . -type f -name '*' -print0)
echo $total