No meu sistema Ubuntu, usando ext4, du -b filefornece o tamanho em bytes de um arquivo real e du -b diro tamanho em bytes do (s) arquivo (s) + sobrecarga de diretório. A sobrecarga é, no meu caso, múltiplos de 4096 bytes.
Essa sobrecarga aumenta à medida que o número de arquivos aumenta.
Nota: mesmo se os arquivos forem excluídos, a sobrecarga do diretório permanecerá no nível mais alto em que estava antes dos arquivos serem excluídos.
Não tentei reiniciar, para ver se ele reverte, mas em ambos os casos, isso significa que o tamanho do diretório varia dependendo das circunstâncias históricas.
Classificar o tamanho de cada arquivo pode ser a melhor opção para obter um valor exato do tamanho total dos arquivos .
O script a seguir totaliza todos os tamanhos de arquivo (em bytes).
Para o OS X, se você não tiver o -bopton para 'du', poderá usá-lo stat. (Se tiver:) ... A linha comentada mostra a statalternativa do Ubuntu para 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