Como encontrar os maiores diretórios ou arquivos maiores? [duplicado]

33

Esta pergunta já tem uma resposta aqui:

No Linux, estou procurando um comando para listar o maior arquivo e / ou os maiores diretórios em um diretório.

Eric V
fonte
A ferramenta mais útil que encontrei é o xdiskusage ( xdiskusage.sourceforge.net ) Isso mostra graficamente onde os arquivos estão - por tamanho. Ótima ferramenta! (e funciona diretamente com o X11)
jcoppens
Como isso é duplicado de alguma pergunta que foi fechada como off-topic? Não faz sentido.
kenorb

Respostas:

17

De qualquer diretório:

du -a | sort -n -r

Brent Worden
fonte
1
Isso mostra arquivos individuais, mas a pergunta é sobre diretórios bem
knocte
du sem argumentos resume o uso do disco por diretórios. du com -a produz as mesmas informações de diretório e inclui o uso do disco para arquivos individuais também.
Brent Worden
não pode executar a classificação quando você estiver sem espaço: = (
Jonathan Henson
28

O comando a seguir mostra um nível de diretórios e seus tamanhos

du --max-profundidade = 1 / caminho | ordenar -r -k1,1n

Se um deles realmente se destacar (o último da lista é o maior devido a sort -r), execute novamente o comando nesse diretório e continue até encontrar o diretório / arquivo incorreto.

Se tudo o que você deseja são os dez maiores arquivos, basta

encontre / home -type f -exec du -s {} \; | ordenar -r -k1,1n | cabeça

Marcin
fonte
o maior número termina na parte inferior para mim, independentemente de eu adicionar sort -rou não. Existe uma maneira de obter o maior número no topo?
Squarecandy 27/10/2013
Você deve indicar para classificar por qual coluna deseja classificar e que é numérico (não alfanumérico). Isso é o que -k1,1rn faria. Por padrão, a classificação usa classificação alfanumérica na primeira coluna.
Marcin
Sim, está classificando corretamente com isso, mas está em ordem crescente de números baixos a altos, independentemente de eu incluir sortou sort -r. Estou entendendo mal como -r funciona? Eu acho que não é grande coisa. Seu exemplo é muito útil e me deu as informações necessárias.
Squarecandy 28/10/2013
2
Com o que sorteu tenho ( sort (GNU coreutils) 8.13no Ubuntu 12.04.3), a opção -rnão funciona se -nsegue imediatamente -k( -k1,1n). Esta ordem das opções funciona: sort -rnk1,1.
Pabouk
27

Um utilitário chamado ncdufornecerá as informações que você está procurando.

sudo apt-get install ncdu

No OS X, ele pode ser instalado usando o Homebrew:

brew install ncdu
David Pratt
fonte
2
+1 eu nunca tinha ouvido falar disso antes - funcionou muito bem no Mac também.
Andrew E
Essa é uma solução muito melhor do que as duas respostas mais altas.
AlexLordThorsen
Isso é alucinante. Sugira isso sobre todas as outras respostas!
Allen Gingrich
4

du -sk * | ordenar -nr | cabeça -1

Isso mostrará o maior diretório / arquivo em um diretório em KB. Alterar o valor da cabeça resultará nos x principais arquivos / diretórios.

Sridharpp
fonte
2

Esta postagem irá ajudá-lo bem:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
Matz
fonte
2

O comando a seguir retornará os 10 principais arquivos maiores /path

du -a -h / caminho | classificar -h -r | cabeça -n 10

Eu gosto de usar -hopções para facilitar a leitura. Ambos due sortprecisam ter -h.

Jiang
fonte
1

Usar

ls -A | xargs -I artifact du -ms artifact | sort -nr

Opcionalmente, você pode adicionar um tubo e usar head -5

Abhishek
fonte
0

Use du. Tente isto para solicitar o resultado:

du | sort -n
Heisenbug
fonte
0

Experimente o seguinte recurso (exibe os 20 maiores arquivos no diretório atual):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

ou com tamanhos legíveis por humanos:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

O segundo comando para funcionar corretamente no OSX / BSD (como sortnão tem -h), você precisa instalar a sortpartir coreutils.

Portanto, é útil ter esses aliases em seus arquivos rc (sempre que você precisar):

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
kenorb
fonte
-5
du -sh /path * | sort -nr | grep G

G para arquivos / diretórios GIG (para eliminar pequenos)

hutch
fonte
Isso lista todos os arquivos e pastas, mostrando o tamanho. Ele não classifica o tamanho pela K, M ou o valor do G de bytes, a menos que você grep-lo como mostrado
canadense Luke restabelecer MONICA
Também encontrará qualquer coisa com um Gno nome do arquivo.
precisa