como usar du para ver arquivos maiores que um tamanho limite

6

Estou tendo algumas situações para as quais não vejo nada nas páginas do man man.

1) Eu quero ver os arquivos em um subdiretório que são maiores do que apenas um tamanho específico. 2) eu uso du -sh > du_output.txt Eu vejo a saída como descrito para a opção -s e -h porém, o que mais me interessa é se a saída vem em um formato que  é  digamos por exemplo

 dir0--->dir1-->dir3-->dir4 
       |             | 
       ->dir2        |-file1
                     |-file2

se o acima é layout de diretório e eu quero apenas ver o tamanho de diretórios individuais em todos os subdiretórios, então o que eu posso fazer (a profundidade de cada subdiretório é variável)

    
por Bond 23.01.2011 / 14:32

5 respostas

5

Eu gosto do utilitário gt5 . Ele usa a saída de du e cria uma listagem navegável de diretórios e seus tamanhos e usa um navegador em modo de texto, como os links para exibir as informações.

Ambos os programas estão disponíveis nos repositórios do Ubuntu: gt5 e links .

    
por 23.01.2011 / 15:56
11

Para mostrar apenas pastas com mais de 1 GB:

du -h --threshold=1G

Você também pode pedir por tamanho, para encontrar facilmente os maiores.
du -h --threshold=1G | sort -h

(funciona em: Ubuntu / Mint.
Não funciona em: OSX ou RHEL 6.2)

    
por 06.06.2015 / 19:27
10

Use o comando find no lugar. O exemplo a seguir mostrará todos os arquivos maiores que 10 megabytes:

find -size +10M

Você pode usar du com find assim para ver o tamanho de cada arquivo:

find -size +10M -exec du -sh {} \;
    
por 23.01.2011 / 14:46
0

find /path/to/folder -size +100k

Não está claro se você está querendo ver o tamanho de arquivos individuais que são maiores do que alguns valores, ou se você quer ver pastas maiores do que alguns valores.

    
por 23.01.2011 / 14:47
0

Eu vejo a resposta do Mtl Dev adequada para essa pergunta. Desde que o Bond abriu este tópico com o tag 'linux' e 'ubuntu-10.04'. Novamente, du -h --threshold=1G (seguido por | sort -h opcionalmente) funciona perfeitamente no Ubuntu.

Embora, Bond tenha dito isso,

I do not see any thing in du man pages.

existem duas linhas na página man, por favor, consulte abaixo.

-t, --threshold=SIZE
exclude entries smaller than SIZE if positive, or entries greater than SIZE if negative

Mais uma coisa, eu acho que a linha de comando exata que Bond quer é algo assim,

find . -mindepth 2 -type d | xargs du -sh -t 1G

Quando -mindepth 1 afirma que deve conter o caminho atual, -mindepth 2 funcionará conforme sua demanda.

Abaixo está uma demonstração sobre o conjunto de dados popular lisa .

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G | sort -h
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations
4.0G    ./negatives/negativePics
6.0G    ./experiments/training

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 1G
4.0G    ./negatives/negativePics
1.2G    ./aiua120306-0/frameAnnotations-DataLog02142012_002_external_camera.avi_annotations
6.0G    ./experiments/training
1.7G    ./aiua120306-1/frameAnnotations-DataLog02142012_003_external_camera.avi_annotations

~/dataset/lisa $ find . -mindepth 2 -type d | xargs du -sh -t 3G
4.0G    ./negatives/negativePics
6.0G    ./experiments/training
    
por 12.06.2018 / 03:18