ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1$ ls ./control
amer calls q1 q2 q3 quit.c RCS SCCS
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1$ du ./control
20 ./control/calls
16 ./control/RCS
40 ./control/SCCS
96 ./control
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1$ du ./control/*
0 ./control/amer
20 ./control/calls
4 ./control/q1
4 ./control/q2
4 ./control/q3
4 ./control/quit.c
16 ./control/RCS
40 ./control/SCCS
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1$
Por favor, note du
informa que o diretório de controle ocupa 96 bytes.
Agora, quando eu adiciono os bytes consumidos pelos arquivos individuais, ele chega a 92 bytes.
Da mesma forma, para todos os relatórios, o resultado mostra 4 bytes a mais do que a soma total do conteúdo.
O que este extra 4 bytes de?
EDIT#1
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1$ ls -ld $_
drwxrwxr-x 5 ravbholua ravbholua 4096 Dec 8 21:39 control
du
(ou linux) usa blocos de 1024 bytes (1KB) para relatar (1024 * 4 = 4096) um arquivo.
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1/control$ ls
ame amer calls q1 q2 q3 quit.c RCS SCCS
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1/control$ du ame
4 ame
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1/control$ cat ame
a
ravbholua@ravbholua-Aspire-5315:~/CCPP/HelloWorld/das/das1/control$ ll ame
-rw-rw-r-- 1 ravbholua ravbholua 2 Dec 8 21:39 ame
Portanto, o arquivo 'ame' acima, que contém apenas a letra 'a' e 'enter key', ocupa 4 KBs do meu espaço em disco.
Então isso significa que para um arquivo / diretório o linux está alocando 4KB do meu espaço em disco !!!! e alocará em múltiplos de 4KB.
Também adicionando mais uma coisa: ls -l
reporta o tamanho em unidades de byte para um diretório, mas não para um arquivo normal. Com ref. para o arquivo acima 'ame', está claro que para um arquivo regular ls -l
reporta tamanho como contagem de caracteres e não bytes.