Isso é completamente inútil, desnecessário no uso prático, mas um pequeno post divertido sobre diretórios em sistemas * nix. Sexta é a mesma coisa.
Nas entrevistas, perguntas entediantes sobre inodes costumam aparecer como arquivos completos, os quais poucos podem responder com prudência. Mas se você se aprofundar um pouco, poderá encontrar coisas curiosas.
Para entender o post alguns pontos:
- tudo é um arquivo. O diretório também é um arquivo
- um metadado de inode do arquivo é armazenado, mas o nome do arquivo não é armazenado lá
- nome do arquivo é armazenado nos dados do diretório
- o tamanho do diretório, o mesmo mostrado em ls e o padrão é 4Kb, depende do número de arquivos no diretório e do tamanho de seus nomes
- obviamente, quanto mais arquivos, maior o tamanho do diretório
E agora a parte interessante: criamos um diretório com um milhão de arquivos, verificamos o tamanho do diretório e, em seguida, limpamos todos os arquivos e observamos o tamanho do diretório.
$ mkdir niceDir && cd niceDir
Como você pode ver, o tamanho do diretório não mudou, embora pareça :)
Você pode corrigir o tamanho do diretório (sem excluir) apenas com fsck (e a opção -D) no estado desmontado.
Mas quando fui procurar por que isso é verdade, aconteceu que há 10 anos esse comportamento já era
discutido no lkml. E, de acordo com os desenvolvedores, a correção simplesmente não vale o esforço.