Observe que du
imprime o espaço que um diretório ocupa na mídia, que geralmente é maior do que o tamanho total de todos os arquivos no diretório, porque du
leva em conta o tamanho de todas as informações auxiliares armazenadas na mídia para organizar o diretório em conformidade com o formato do sistema de arquivos.
Se o sistema de arquivos for compactável, du
poderá produzir um número ainda menor que o tamanho total de todos os arquivos, porque os arquivos podem ser compactados internamente pelo sistema de arquivos e ocupam menos espaço na mídia do que apenas informações não compactadas Eles contém. O mesmo se houver arquivos esparsos.
se houver links físicos no diretório, então du
poderá imprimir um valor menor, pois vários arquivos diferentes no diretório referem os mesmos dados na mídia.
Para obter o tamanho total direto de todos os arquivos no diretório, a seguinte expressão de shell de uma linha pode ser usada (assumindo um sistema GNU):
find . ! -type d -print0 | xargs -r0 stat -c %s | paste -sd+ - | bc
ou ainda mais curto:
find . ! -type d -printf '%s\n' | paste -sd+ - | bc
Soma apenas os tamanhos de todos os arquivos não-diretório no diretório (e seus subdiretórios recursivamente) um por um. Note que para links simbólicos, ele relata o tamanho do symlink (não do arquivo para o qual o link simbólico aponta).