Diretório de amostra
$ ls -aF
./ ../ .asd/ folder1/ folder2/ list t1 t2 xyz/
Para encontrar tamanhos apenas para pastas, exceto pastas ocultas:
$ find -type d -name '[!.]*' -exec du -sh {} +
4.0K ./folder1
4.0K ./folder2
8.0K ./xyz
Se você precisar de um total no final também:
$ find -type d -name '[!.]*' -exec du -ch {} +
4.0K ./folder1
4.0K ./folder2
8.0K ./xyz
16K total
Para ordenar os resultados:
$ find -type d -name '[!.]*' -exec du -sh {} + | sort -h
4.0K ./folder1
4.0K ./folder2
8.0K ./xyz
Para inverter a ordem de classificação:
$ find -type d -name '[!.]*' -exec du -sh {} + | sort -hr
8.0K ./xyz
4.0K ./folder2
4.0K ./folder1
Se você precisar também de diretórios ocultos, remova -name '[!.]*'
do comando find. Não conheço nenhum outro comando para encontrar o tamanho das pastas que seja mais rápido que du
. Use df
para file system disk space usage
Use find -maxdepth 1 -type d -name '[!.]*' -exec du -sh {} +
para evitar subpastas