Existe algum sinalizador de comando du (uso de disco) que resume o tamanho de cada subdiretório

4

Eu tenho a seguinte estrutura de diretórios (exemplo) -

main
|--src
    |--com
        |- company
    |--org
        |- apache
|--resources
    |--abc
|--etc

Eu preciso do espaço em disco usado por cada subdiretório no diretório main . Então, a saída seria algo como -

user@main> du -{command_switches}
1M  src
20M resources
3M  etc

Eu tentei vários switches disponíveis - sh, Sh, ash, aSH - mas não consegui o resultado necessário.

    
por Rakesh N 27.04.2018 / 11:19

3 respostas

10

Algumas du implementações suportam -d ¹ para limitar a profundidade na qual o uso do disco é exibido (não em qual disco é contabilizado ), então du -hd 1 . deve funcionar para o diretório atual .

Portably, você sempre pode fazer:

find . ! -name . -prune -type d -exec du -s {} +

(adicione -h se sua implementação du for compatível)

Embora note que, se houver muitos diretórios no diretório atual, find pode acabar executando várias invocações de du , o que pode significar que alguns links físicos são contados várias vezes. Algumas implementações de du também não impedem que os links físicos sejam contados várias vezes, se forem encontrados através da travessia de argumentos diferentes.

¹, com versões mais antigas do GNU du , você pode precisar de --max-depth . O equivalente da opção -d short foi adicionado apenas no coreutils 8.8 para compatibilidade com o FreeBSD

    
por 27.04.2018 / 11:22
2

Você pode querer olhar para

$ du --max-depth=1 -h

Eu sei que esse tópico é sobre du , mas você também pode querer dar uma olhada nos aplicativos gráficos, que podem ser mais eficientes mostrando informações como essa, como baobab ou k4dirstat.

    
por 27.04.2018 / 15:14
0

Talvez eu esteja sentindo falta do que você está pedindo, mas acho que

du -sh *

faz exatamente o que você quer. O * é importante aqui. Com -s , você obtém um resumo para cada diretório na linha de comando , portanto sem dir explícito ( . implícito) você obteria um resumo para tudo, não para cada um dos dirs sob o nível superior individualmente.

    
por 27.04.2018 / 19:36