Como listar tamanhos de arquivos recursivos de arquivos e diretórios em um diretório?

32

Como faço para listar todos os arquivos em um diretório e seus tamanhos de arquivos recursivos?

--- editar

Eu quero ver os tamanhos 'acumulados' nos diretórios pai no diretório listado. Eu não quero ver os diretórios filhos ou seus conteúdos ou tamanhos.

    
por hawkeye 18.08.2011 / 13:46

9 respostas

43

Acho que a maneira mais fácil é digitar ls -l ou ls -lh , que fornecerá o tamanho do arquivo em formato legível (KB, MB etc.).

Se "recursivamente" significa listar todas as pastas subsequentes, por exemplo:

/ foo /
/ foo / bar / ....

Você também deve adicionar o parâmetro R , como ls -lR ou ls -lhR

Mais informações sobre ls podem ser encontradas digitando man ls

Atualização:

O seguinte comando, como Lekensteyn propôs, provavelmente fará o trabalho:

du -h --max-depth=1 <folder>

-h é para legível por humanos
--apparent-size é outra maneira de exibir tamanhos como já foi dito | --max-depth é o nível de subpastas que você deseja descer.

    
por Pavlos G. 18.08.2011 / 14:00
44
apt-get install ncdu

É interativo também, portanto, se você quiser verificar em uma subpasta apenas UP, DOWN e Enter.

    
por ihashacks 19.08.2011 / 06:59
23

Para obter o tamanho total de um diretório e todas as crianças

du -hs directory/*
    
por Richard Holloway 18.08.2011 / 14:16
15

Confira também tree . Não é instalado por padrão, mas são os repositórios.

Exemplo:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Mais opções podem ser encontradas na página do manual.

    
por Richard Holloway 18.08.2011 / 14:13
11

Como você não menciona especificamente a necessidade de uma solução baseada em terminal, acho que baobab a.k.a O Disk Usage Analyzer está faltando na lista.

Ele é instalado no Ubuntu por padrão e faz exatamente o que você quer em uma boa interface gráfica com a capacidade de detalhar a hierarquia de diretórios.

Além de exibir uma lista de diretórios com seus tamanhos, ele também mostra um gráfico de anéis ou treemap do uso do sistema de arquivos, o que é extremamente útil para visualizar os diretórios que ocupam mais espaço.

    
por Sergey 19.08.2011 / 02:31
4

Uma solução de terminal é o comando du :

du --all --human-readable --apparent-size

(abreviação: du -ah --apparent-size )

du exibe o uso do disco para cada arquivo e diretório. As opções explicadas:

  • --all , -a - mostra tamanhos para arquivos, não apenas diretórios
  • --human-readable , -h - mostra tamanhos num formato legível por humanos, por ex. 10K (10 kilobytes), 10 (10 bytes)
  • --apparent-size - mostra o tamanho real do arquivo, não os tamanhos usados ​​pelo disco.
por Lekensteyn 18.08.2011 / 14:02
2

Isso parece funcionar quando os simlinks estão envolvidos.

ls -LRlh
    
por Mulki 20.04.2016 / 12:58
0

Para obter uma lista classificada, coloque tudo em MB e ordene:

du -m * | sort -n

Ou use ferramentas como DiskReport para gerar um relatório da árvore de discos completa.

    
por Erwan 19.08.2015 / 23:22
0

Outra solução de terminal com find e sort (por tamanho do arquivo, coluna 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh
    
por Sergiy Kolodyazhnyy 20.08.2015 / 00:26