De vez em quando, algum aplicativo é executado solta e preenche um diretório com uma enorme quantidade de arquivos. Depois que corrigimos o erro e limpamos os arquivos, o diretório permanece grande (> 50 MB), embora haja apenas 20 a 30 arquivos nele.
Existe algum comando que compacta um diretório sem precisar recriá-lo?
Pontos de bônus: um diretório vazio enorme afeta o desempenho de acesso desse diretório? Suponho que sim, mas talvez não valha a pena incomodar. Parece mais lento ls
em um diretório assim.
Eu não acho que exista isso (mas é claro que posso estar completamente errado). Talvez algumas ferramentas específicas do sistema de arquivos - que FS você está usando?
—
Mat
ext3, mas já vi esse problema na maioria dos sistemas de arquivos com os quais lidei no mundo unix. Também não acho que exista essa ferramenta, mas gostaria de provar que estou errado.
—
Mathieu Longtin
Eu marquei sua pergunta "ext3", uma vez que esta pergunta é muito específica ao sistema de arquivos. Não sei a resposta para ext3 (suspeito que você precise recriar o diretório para encolher), mas você tentou forçar um
—
Celada 14/05
fsck
? O ext3's fsck
possui um passe "Otimizando diretório". Não sei o que isso faz, mas talvez diminua diretórios grandes demais? De qualquer forma, como um ponto de dados FWIW, o xfs envia automaticamente diretórios que tiveram arquivos removidos deles.
Você, por acaso, excluiu arquivos abertos?
—
Karlson 14/05
Os UFs nos BSDs e Mac HFS também reduzem os diretórios em tempo real. Estou surpreso ao saber que ext3 não. O ext4 também não parece fazer isso.
—
Kyle Jones