Diretório no Linux (ext3) com apenas 2 arquivos ocupa 32000 blocos (16Mbytes)

1

IIRC minhas classes de sistemas operacionais, o tamanho de um diretório no Linux é dado pelo número de arquivos que ele contém ([wikipedia link]) 1

Então, por que um diretório com apenas 2 arquivos ocupa 32000 blocos?

# stat .
  File: «.»
  Size: 16855040        Blocks: 32968      IO Block: 4096   directorio
Device: 6805h/26629d    Inode: 3047425     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  501/   jboss)   Gid: (  501/   jboss)
Access: 2011-08-26 12:00:20.000000000 +0200
Modify: 2011-08-26 10:58:07.000000000 +0200
Change: 2011-08-26 10:58:07.000000000 +0200

O diretório pode ter muitos arquivos (milhares) em algum momento do passado, mas não agora. O que está acontecendo aqui?

    
por Samuel 26.08.2011 / 12:16

2 respostas

2

Seu diretório provavelmente já viu muita ação e o SO não recuperou o espaço que foi usado. Você pode consertar isso arrastando as coisas, se o seu diretório que está usando todo o espaço fosse chamado bigdir , então você poderia

mkdir newdir
mv bigdir/* newdir
rmdir bigdir
mv newdir bigdir

Certifique-se de que o que quer que acesse o bigdir não aconteça enquanto você faz o shuffle.

    
por 26.08.2011 / 12:40
1

O sistema de arquivos não necessariamente recupera blocos de diretórios quando eles não estão mais em uso.

    
por 26.08.2011 / 12:21