2010-08-03 17:58:26 +0000 2010-08-03 17:58:26 +0000
142
142

Listar os tamanhos das pastas actuais com o terminal?

Quero uma lista das pastas do directório actual ou uma que especifique com o seu tamanho.

Tentei com du mas só obtenho o tamanho dos directórios que especifiquei (du . ./f1), e ls não mostra o tamanho das pastas.

Como faço isto sem qualquer scripting ?

Respostas (9)

223
223
223
2010-08-03 18:29:55 +0000

Se quiser mostrar todos os directórios do directório actual:

$ du -sh */
788K foo/
500K bar/
931K baz/

Para mostrar a partir de outro directório:

$ du -sh /path/to/dir/*/
48K /path/to/dir/dir1/
4.0K /path/to/dir/dir2/
6.7M /path/to/dir/dir3/
20K /path/to/dir/dir4/
8.0K /path/to/dir/dir5/
44K /path/to/dir/dir6/

Se quiser ter a certeza que os directórios com nomes que começam com um ponto estão incluídos faça primeiro o shopt -s dotglob.

19
19
19
2013-03-02 05:23:56 +0000

Num Mac, a opção –max-depth é substituída por -d [depth]. Assim, para ver uma listagem de leitura humana da sua drive raiz mais 2 níveis de profundidade use o seguinte:

du -hd 2 /*

Nota: este comando irá expor os dois níveis de directório superiores da sua raiz. Isto inclui atravessar um nível para os seus Volumes_, e irá listar os tamanhos resumidos de cada directório de nível superior em cada um dos seus volumes anexados. Dependendo do que tem anexado, este comando pode demorar algum tempo a completar.

14
14
14
2010-08-03 19:32:55 +0000

Outra abordagem é a opção –max-depth.

du -h --max-depth=1 .

Listará todos os directórios e ficheiros sob a pasta actual com o tamanho.

Profundidade 2 listará mais um nível de pastas.

5
5
5
2010-08-03 18:09:10 +0000

Experimente:

$ du -s ./f1

ou

$ du -sh ./f1

para tamanhos legíveis mais amigáveis.

4
4
4
2018-03-02 22:17:45 +0000

Com base na resposta aceite, este comando mostrar-lhe-á os tamanhos das pastas no directório, e também as listará por tamanho para que possa interpretar mais facilmente:

$ du -sh */ | sort -rn
2
2
2
2015-06-30 15:39:04 +0000

$ du --max-depth=1 /var/www/ | sort -n -r

2
2
2
2016-06-12 12:26:54 +0000

Vale a pena mencionar o comando NCurses Disk Usage shell.

Ncdu é um analisador de uso de disco com interface ncurses. Foi concebido para encontrar porcos espaciais num servidor remoto onde não tem disponível uma configuração gráfica completa, mas é uma ferramenta útil mesmo em sistemas desktop normais. O Ncdu pretende ser rápido, simples e fácil de usar, e deve ser capaz de correr em qualquer ambiente tipo POSIX mínimo com o ncurses instalado.

1
1
1
2017-03-27 23:47:09 +0000

Aqui está um script POSIX que irá funcionar com:

  • Um ficheiro
  • Ficheiros
  • Um directório
  • Directórios
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

Fonte

1
1
1
2017-09-28 15:32:12 +0000

No Mac, você pode instalar a implementação GNU (Linux) do du com Homebrew (brew install coreutils). Depois, por exemplo:

gdu folder -shL --exclude=.git

onde

  • gdu é o nome dado à implementação GNU de du (por defeito Homebrew não esconde /usr/bin/du);
  • s produz um grande total para a pasta especificada (omitir se quiser ver a desagregação);
  • h produz tamanhos legíveis por humanos;
  • L segue links simbólicos;

- --exclude=.git exclui o directório git dentro da pasta especificada (isto é apenas um exemplo).

Pode ignorar mais pastas adicionando --exclude=blah. Pode também especificar várias pastas ao mesmo tempo (isto é, gdu folder1 folder2 ...), e nesse caso, pode combinar todos os subtotais num único tamanho usando a opção c.