У моїй системі Ubuntu, використовуючи ext4, du -b file
надає розмір у байтах фактичного файлу та du -b dir
надає розмір у байтах накладних файлів (ів) + каталогу, накладні дані, у моєму випадку, кратні 4096 байтів.
Цей наклад збільшується зі збільшенням кількості файлів.
Примітка: навіть якщо файли видалено, накладні дані каталогу залишаються на вищому рівні, який був до того, як файли були видалені ..
Я не намагався перезавантажити, щоб побачити, чи повертається вона, але в будь-якому випадку це означає, що розмір каталогу змінюється залежно від історичних обставин.
Розрахунок кожного розміру файлів може бути найкращим варіантом для точного значення загальних розмірів файлів .
Наведений нижче сценарій підсумовує всі розміри файлів (у байтах) ..
Для OS X, якщо у вас немає -b
оптону для 'du', ви можете використовувати stat
замість цього (якщо у вас є:) ... Коментована лінія показує stat
альтернативу Ubuntu 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