Bash: Exibe o tamanho de cada subdiretório em um formato de lista usando o comando 1 line?

88

Eu quero obter uma lista dos diretórios e seus tamanhos em um formato de lista, como você obtém quando faz um ls -l .

O problema é que existe um comando de uma linha que pode fazer isso? Eu vejo outros têm longos comandos apenas para produzir isso. Isso é muito longo.

Qual comando pode fazer isso ou combinação de comandos que podem ser facilmente digitados? du -h fornece, mas exibe todas as subpastas que não são o que eu quero. apenas as pastas de diretórios atuais.

    
por Patoshi パトシ 19.02.2013 / 16:34

4 respostas

47

Você provavelmente deseja ver os diretórios ordenados por tamanho:

$ du -hs * | sort -hr

856M    lib
746M    share
612M    lib64
312M    src
267M    java
239M    bin
179M    sbin
173M    local
93M     i686-w64-mingw32
72M     libexec
26M     include
20M     puppet
772K    X11R6
20K     man
4.0K    games
4.0K    etc
0       tmp
    
por 18.06.2016 / 01:04
116

Tente isso

du -h --max-depth=1

Saída

oliver@home:/usr$ sudo du -h --max-depth=1
24M     ./include
20M     ./sbin
228M    ./local
4.0K    ./src
520M    ./lib
8.0K    ./games
1.3G    ./share
255M    ./bin
2.4G    .

Alternativa

Se --max-depth=1 for um pouco longo demais para o seu gosto, você também pode tentar usar:

du -h -s *

Isso usa -s ( --summarize ) e só imprimirá o tamanho da pasta por padrão. Ao passar todos os elementos no diretório de trabalho atual ( * ), ele produzirá uma saída semelhante à --max-depth=1 :

Saída

oliver@cloud:/usr$ sudo du -h -s *
255M    bin
8.0K    games
24M     include
520M    lib
0       lib64
228M    local
20M     sbin
1.3G    share
4.0K    src

A diferença é sutil. A abordagem anterior exibirá o tamanho total do diretório de trabalho atual e o tamanho total de todas as pastas contidas nele ... mas somente até uma profundidade de 1.

A última abordagem calculará o tamanho total de todos os itens passados individualmente . Assim, inclui o symlink lib64 na saída, mas exclui os itens ocultos (cujo nome começa com um ponto). Também não possui o tamanho total do diretório de trabalho atual, já que isso não foi passado como um argumento.

    
por 19.02.2013 / 16:36
6

Imprima os tamanhos de todas as pastas de arquivos e arquivos ocultos no disco:

el@dev /home/el $ du -sh 'ls -a'
258M    .
265M    ..
4.0K    .classpath
258M    .git
4.0K    .gitignore
9.0K    nbactions.xml
12K     README
20K     .README.swp
4.0K    run.sh
23K    XmlPostPropagate.php
    
por 06.11.2014 / 15:52
1

Vale mencionar o comando shell NCurses Disk Usage .

Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. 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 12.06.2016 / 14:29

Tags