Como saber o tamanho de um diretório? Incluindo subdiretórios e arquivos.
Como saber o tamanho de um diretório? Incluindo subdiretórios e arquivos.
Respostas:
du -s directory_name
Ou para obter uma saída legível por humanos:
du -sh directory_name
A -s
opção significa que ele não listará o tamanho de cada subdiretório, apenas o tamanho total.
du -sh bag
funcionou perfeitamente!
Embora o uso de um pacote separado, como o ncdu, possa funcionar bem, a mesma comparação de muitas pastas pode ser feita, até certo ponto, fornecendo apenas uma lista de pastas para dimensionar. Por exemplo, para comparar diretórios de nível superior em seu sistema ...
cd /
sudo du -sh ./*
du -sh /*
O GNU du
aceita uma -b
opção.
Consulte a man
página e a info
página para obter mais ajuda:
-b
,--bytes
é equivalente a--apparent-size --block-size=1
du -csh
-c produz um total geral
-c
que não faz sentido usar em conjunto com -s
, certo? -s
exibe apenas o tamanho do diretório especificado, que é o tamanho total do diretório.
Experimentar
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
Isso ajuda a encontrar grandes diretórios para filtrar usando du -sh ./*
você também pode usar ls -ldh:
ls -ldh /etc
drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-l é para listagem longa; -d é para exibir informações do diretório, não o conteúdo do diretório, -h é para exibir o tamanho no formato legível pelo huma.
Eu sempre instalo o pacote "ncdu" e vejo toda a saída de todos os diretórios com representação gráfica. Isso ocorre porque geralmente preciso saber o que está ocupando mais espaço em disco em minhas máquinas, independentemente de quanto um único diretório resuma.
Uso: sudo ncdu /
(Você não precisa sudo
de pastas nas quais tenha permissão de leitura).
Levará um tempo para verificar as estatísticas de uso do disco em todo o sistema de arquivos. Ele possui uma boa representação gráfica da linha de comando e inclui navegação no teclado usando as teclas de seta, como ir mais fundo ou mais alto no caminho digitalizado. Você também pode excluir itens pressionando D.
Você pode usar "file-size.sh" na biblioteca do awk Velour :
ls -ARgo "$@" | awk '{q += $3} END {print q}'
du -hd1
listará em formato legível por humanos os tamanhos de todos os diretórios, por exemplo
656K ./rubberband
2.2M ./lame
652K ./pkg-config
Eu tentei com o comando abaixo, já que a melhor resposta já foi fornecida
sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
resultado
sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
679445
du
A unidade padrão atualmente é de blocos de 512 bytes, de acordo com o POSIX, e kilobytes no Linux (a menos que a variável de ambientePOSIXLY_CORRECT
esteja configurada) ou comdu -k
.