Como saber o tamanho de um diretório? Incluindo subdiretórios e arquivos.
du -s directory_name
Ou para obter uma saída legível por humanos:
du -sh directory_name
O -s
opção significa que não listará o tamanho de cada subdiretório, apenas o tamanho total.
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 uma lista de pastas para o tamanho desejado. Por exemplo, para comparar diretórios de nível superior em seu sistema ...
cd /
Sudo du -sh ./*
du -csh
-c produz um total geral
Tentar
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
Isso ajuda a encontrar grandes diretórios para filtrar usando du -sh ./*
Você pode usar "file-size.sh" no awk biblioteca do Velour :
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
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 eu preciso saber o que está ocupando mais espaço em disco nas minhas máquinas, independentemente de quanto um único diretório resuma.
Uso: Sudo ncdu /
(Você não precisa Sudo
para pastas nas quais possui 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 representação gráfica da linha de comando Nice e inclui navegação no teclado usando as teclas de seta, como ir mais fundo ou mais alto no caminho verificado Você também pode excluir itens pressionando D.
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
A pergunta original perguntou o tamanho, mas não especificou se era o tamanho do disco ou o tamanho real dos dados.
Descobri que o cálculo do 'du' pode variar entre servidores com a mesma partição de tamanho usando o mesmo sistema de arquivos. Se as características do sistema de arquivos diferem, isso faz sentido, mas, caso contrário, não consigo entender o porquê. A resposta 'l | | awk "que Steven Penny deu fornece uma resposta mais consistente, mas ainda assim me deu resultados inconsistentes com listas de arquivos muito grandes.
O uso de 'find' deu resultados consistentes para mais de 300.000 arquivos, mesmo ao comparar um servidor usando XFS e outro usando EXT4. Portanto, se você deseja conhecer o total de bytes de dados em todos os arquivos, sugiro que seja uma boa maneira de obtê-lo:
find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
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.