Como faço para listar todos os arquivos em um diretório e seus tamanhos recursivos?
---editar
Eu quero ver os tamanhos 'acumulados' para os diretórios pai no diretório listado. Eu não quero ver os diretórios filhos ou seu conteúdo ou tamanho.
Como faço para listar todos os arquivos em um diretório e seus tamanhos recursivos?
---editar
Eu quero ver os tamanhos 'acumulados' para os diretórios pai no diretório listado. Eu não quero ver os diretórios filhos ou seu conteúdo ou tamanho.
Respostas:
Eu acho que a maneira mais fácil é digitando ls -l
, ou ls -lh
que fornecerá o tamanho do arquivo em formato legível por humanos (KB, MB, etc).
Se 'recursivamente' significa listar todas as pastas subseqüentes, por exemplo:
/ foo /
/ foo / bar / ....
Então você também deve adicionar parâmetros R
, como ls -lR
ouls -lhR
Mais informações ls
podem ser encontradas digitandoman ls
Atualizar:
O seguinte comando proposto por Lekensteyn provavelmente fará o trabalho:
du -h --max-depth=1 <folder>
-h
é legível por humanos
--apparent-size
é outra maneira de exibir tamanhos, como já indicado,
--max-depth
é o nível de subpastas que você deseja reduzir.
apt-get install ncdu
Também é interativo, portanto, se você quiser verificar uma subpasta, basta UP, DOWN e Enter.
Para obter o tamanho total de um diretório e todos os filhos
du -hs directory/*
Também confira tree
. Não está 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.
-h
mostrar o tamanho de maneira legível por humanos, por exemplotree -s
Como você não menciona especificamente que precisa de uma solução baseada em terminal, acho que o baobab, também conhecido como Disk Usage Analyzer, está ausente na lista.
Ele é instalado no Ubuntu por padrão e faz exatamente o que você deseja em uma interface gráfica agradável, com a capacidade de detalhar a hierarquia de diretórios.
Além de exibir uma lista de diretórios com seus tamanhos, também está mostrando um gráfico de anéis ou de mapa de árvore do uso do sistema de arquivos, que é extremamente útil para visualizar os diretórios que ocupam mais espaço.
Uma solução de terminal é o du
comando:
du --all --human-readable --apparent-size
(abreviada: 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 também, não apenas diretórios--human-readable
, -h
- mostra tamanhos em um formato legível por humanos, por exemplo 10K
(10 kilobytes), 10
(10 bytes)--apparent-size
- mostre o tamanho real do arquivo, não os tamanhos usados pelo disco.--max-depth=1
--max-depth=1
pode ser abreviada para -d1
.
Isso parece funcionar quando os links simbólicos estão envolvidos.
ls -LRlh
Para obter uma lista classificada, coloque tudo em MB e classifique:
du -m * | sort -n
Ou use uma ferramenta como DiskReport para gerar um relatório da árvore completa do disco.
Outra solução de terminal com find
e classificação (por tamanho de 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