O tamanho é 78 bytes porque o diretório está quase vazio. Com "diretório" quero dizer o conteúdo descendente imediato dessa pasta, ou seja, se você tiver
.../controllers/
Class1/Whatever
/Resources...
Class2/Whatever
/Resources...
então "controllers" só tem três entradas (.., Class1 e Class2. Eu não sei exatamente se ou como .. está realmente armazenado).
Mesmo se, no disco, o diretório ocupar um bloco inteiro, portanto 4K ( mas veja abaixo ... ), o diretório tamanho lógico permanece em 78 bytes, e, em muitos aspectos, é tratado como um arquivo (os white papers XFS refere-se a ele como um arquivo de diretório ). Se você criar um novo objeto imediatamente abaixo de controllers
, espero que esse tamanho seja incrementado.
Além disso, diretórios muito pequenos podem ser armazenados dentro de inodes , ocupando, assim, blocos reais zero:
Very small files
Most symbolic links and directory files are small files. XFS allows these files to be stored in inodes for increased performance. XFS also uses delayed writes to wait to gather the entire small file in the buffer cache before writing to disk...
Para recapitular, pelo que entendi, você pode ter
- arquivos de diretório pequenos armazenados dentro de inodes (" diretórios de formato curto "), ocupando blocos zero e organizados como Array.
- arquivos de diretório razoáveis armazenados em arquivos físicos que ocupam um bloco (" diretórios de bloco ")
- grandes arquivos de diretório armazenados em arquivos físicos, ocupando um inteiro múltiplo de um bloco, e organizados como B-Trees para velocidade extra .
Teste
O espaço disponível dentro de um inode do XFS para um arquivo de diretório parece estar em torno de 156-157 bytes no meu sistema Linux. Quando excedido, um bloco de 4K é usado, mas liberar espaço também libera o bloco, armazenando a informação no inode.
mkdir temp
drwxr-xr-x 2 root root 6 2013-04-22 08:59 temp
touch temp/x; ls -la temp
drwxr-xr-x 2 root root 14 2013-04-22 09:00 temp
mv temp/x temp/{ 100 x's }
drwxr-xr-x 2 root root 113 2013-04-22 09:01 temp
{ 130 x's }
drwxr-xr-x 2 root root 143 2013-04-22 09:02 temp
{ 140 x's }
drwxr-xr-x 2 root root 153 2013-04-22 09:02 temp
{ 146 x's }
drwxr-xr-x 2 root root 4096 2013-04-22 09:03 temp
{ 142 x's }
drwxr-xr-x 2 root root 155 2013-04-22 09:03 temp