Localizando arquivos que usam mais espaço em disco

39

É possível listar os maiores arquivos no meu disco rígido? Costumo usar df -H para exibir o uso de meu disco, mas isso só dá a porcentagem completa, GBs restantes, etc.

Eu faço muitos cálculos com uso intensivo de dados, com um grande número de arquivos pequenos e um número muito pequeno de arquivos muito grandes. Como a maioria do meu espaço em disco usado está em um número muito pequeno de arquivos, pode ser difícil rastrear onde estão esses arquivos grandes. A exclusão de um arquivo de 1 kB não libera muito espaço, mas sim a exclusão de um arquivo de 100 GB. Existe alguma maneira de classificar os arquivos no disco rígido em termos de tamanho?

Obrigado.

    
por Andrew 24.04.2012 / 18:44

7 respostas

42

Com ferramentas padrão disponíveis:

Para listar os 10 maiores arquivos do diretório atual: du . | sort -nr | head -n10

Para listar os maiores diretórios do diretório atual: du -s * | sort -nr | head -n10

UPDATE Atualmente eu uso uma forma mais legível (como Jay Chakra explica em outra resposta e deixa o | head -n10 , simplesmente deixe ele sair da tela. A última linha tem a maior arquivo ou diretório (árvore).

Às vezes, por exemplo. quando você tem muitos pontos de montagem no diretório atual, em vez de usar -x ou vários --exclude=PATTERN , é mais prático montar o sistema de arquivos em um ponto de montagem não utilizado ( geralmente /mnt ) e trabalhar a partir daí.

Lembre-se de que, ao trabalhar com volumes grandes (NFS), você pode causar uma carga considerável no back-end de armazenamento (arquivador) ao executar du sobre vários (sub) diretórios. Nesse caso, é melhor considerar a configuração de quota no volume.

    
por 24.04.2012 / 19:35
29

Adicionando a resposta do jippie

Para listar os maiores diretórios do diretório atual em formato legível:

du -sh * | sort -hr | head -n10

Amostra:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

Isso torna mais conveniente ler:)

    
por 09.08.2015 / 09:05
13

Teste ncdu , pois ele pode fornecer uma visão geral do uso do disco. Do seu site:

A disk usage analyzer with an ncurses interface, aimed to be run on a remote server where you don't have an entire gaphical setup, but have to do with a simple SSH connection. ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.

    
por 24.04.2012 / 18:57
2

Existe uma maneira simples e eficaz de encontrar o tamanho de todos os arquivos e diretórios no Ubuntu:

Aplicações > Acessórios > Analisador de uso de disco

nesta janela clique no botão "Scan Filesystem" na barra de ferramentas. depois de um curto período de tempo (segundos) você tem uso de disco de todos os diretórios e arquivos.

    
por 30.04.2012 / 08:26
2

(gnu)

du -Kax /dir | sort -n Exibe arquivos grandes, bem como diretórios grandes, pode ser usado para identificar onde você precisa fazer alguma limpeza.

du -kax | sort -n 
...
46632   ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816   ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220  ./UnitedLinux/apt/i386/RPMS.updates
679248  ./UnitedLinux/apt/i386
679252  ./UnitedLinux/apt
691820  ./UnitedLinux/i586
691836  ./i386/update/SuSE-SLES/8/rpm/i586
695192  ./i386/update/SuSE-SLES/8/rpm
695788  ./i386/update/SuSE-SLES/8
695792  ./i386/update/SuSE-SLES
695804  ./i386/update
695808  ./i386
1390184 ./UnitedLinux

(Eu sei que é uma árvore bem antiga: p)

    
por 05.11.2014 / 17:53
0

Você pode tentar com este comando, ele listará todos os arquivos maiores que 20Mb.

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
  | awk '{ print $NF ": " $5 }'  | sort -hrk 2,2
    
por 24.04.2012 / 18:56
-2

Você pode tentar com este comando, ele listará o arquivo grande:

ls -lrS | tail -1
    
por 05.11.2014 / 13:29

Tags