Como encontro onde estão todos os arquivos?

0

Eu tenho uma árvore de diretórios razoavelmente grande, cujo conteúdo eu não conheço, e tenho razões para acreditar que existem alguns diretórios muito grandes enterrados em algum lugar. Como eu encontro onde eles estão?

Contexto: Estou limpando um aplicativo da web que deixou muitos arquivos ao longo dos anos. Eu já encontrei e limpei um diretório que continha centenas de milhares de pequenos arquivos "session. *" Antigos, mas os comandos find sobre a hierarquia ainda são extremamente lentos.

A árvore é grande o suficiente para que ls -RC | less não seja uma solução atraente. Se eu estivesse procurando por um diretório ocupando muito espaço em disco, eu iria dividir e conquistar usando du -s * . Como posso encontrar os diretórios que contêm o maior número de arquivos?

Editar: Isso está em um servidor antigo, por isso não posso usar du --inodes para contar os arquivos. Para a maioria dos leitores, essa é provavelmente a melhor solução.

    
por alexis 28.11.2016 / 14:13

3 respostas

3

Em uma distribuição antiga sem du --inodes ,

find . -type d -ls | sort -n -k7,7

listará todos os diretórios em ordem crescente de tamanho, assim você obterá os diretórios com a maioria dos arquivos (ou que continha a maioria dos arquivos em algum momento) no final da lista. O comando find pode demorar um pouco para ser executado, mas não há muito a ser feito sobre isso - mesmo uma abordagem du de divisão e conquista teria que ler a mesma quantidade de informações do disco.

    
por 28.11.2016 / 14:43
4
du --inodes *

homem du:

   --inodes
          list inode usage information instead of block usage
    
por 28.11.2016 / 14:15
2

Você pode usar

du --inodes * |sort -nr 

du --inodes * fornecerá o número de arquivos por diretório e sort -nr classificará esse número em ordem decrescente

    
por 28.11.2016 / 14:22

Tags