it-swarm-pt.tech

Como determino o tamanho total de um diretório (pasta) na linha de comando?

Existe um comando simples para exibir o tamanho total agregado (uso do disco) de todos os arquivos em um diretório (pasta)?

Eu tentei estes, e eles não fazem o que eu quero:

  • ls -l, que exibe apenas o tamanho dos arquivos individuais em um diretório, nem
  • df -h, que exibe apenas o espaço livre e usado em meus discos.
755
David Barry

O comando du "resume o uso do disco de cada FILE, recursivamente para diretórios", por exemplo,

du -hs /path/to/directory
  • -h é obter os números "legíveis por humanos", por ex. obtenha 140M em vez de 143260 (tamanho em KBytes)
  • -s é para resumo (caso contrário, você obterá não apenas o tamanho da pasta, mas também para tudo in a pasta separadamente)

Como você está usando -h você pode classificar os valores legíveis usando

du -h | sort -h

O sinalizador -h em sort considerará valores de tamanho "Human Readable".


Se desejar evitar a listagem recursiva de todos os arquivos e diretórios, você poderá fornecer o parâmetro --max-depth para limitar quantos itens serão exibidos. Mais comumente, --max-depth=1

du -h --max-depth=1 /path/to/directory
1211
Marcel Stimberg

Recentemente, encontrei uma ótima ferramenta interativa baseada em ncurses, que rapidamente oferece uma visão geral sobre os tamanhos dos diretórios. Procurado por esse tipo de ferramenta por anos.

  • aprofundar rapidamente a hierarquia de arquivos
  • você pode excluir por exemplo enormes arquivos temporários de dentro da ferramenta
  • extremamente rápido

Pense nisso como baobab para a linha de comando:

apt-get install ncdu
158
geekQ

Isso encontra o tamanho recursivamente e o coloca ao lado do nome de cada pasta, junto com o tamanho total na parte inferior, tudo no formato humano

du -hsc *
51
Brad

Desfrutar!

du foldername

Mais informações sobre esse comando aqui

16
myusuf3

tree é outro comando útil para este trabalho:

Basta instalá-lo via Sudo apt-get install tree e digite o seguinte:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

De árvore do homem :

-h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
11
αғsнιη

Abaixo está o que estou usando para imprimir o total, a pasta e o tamanho do arquivo:

$ du -sch /home/vivek/* | sort -rh

Detalhes

 ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons

Saída

 70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
9
vivekyad4v

As respostas tornaram óbvio que du é a ferramenta para encontrar o tamanho total de um diretório. No entanto, existem alguns fatores a serem considerados:

  • Ocasionalmente, a saída du pode ser enganosa porque reporta o espaço alocado pelo sistema de arquivos, que pode ser diferente da soma dos tamanhos dos arquivos individuais. Normalmente, o sistema de arquivos irá alocar 4096 bytes para um arquivo, mesmo que você tenha armazenado apenas um caractere nele!

  • Diferenças de saída devido à potência de 2 e potência de 10 unidades. A opção -h para du divide o número de bytes em 2 ^ 10 (1024), 2 ^ 20 (1048576) etc para fornecer uma saída legível. Muitas pessoas podem estar mais habituadas a ver potências de 10 (por exemplo, 1K = 1000, 1M = 1000000) e se surpreender com o resultado.

Para encontrar a soma total de tamanhos de todos os arquivos em um diretório, em bytes, faça:

find <dir> -ls | awk '{sum += $7} END {print sum}'

Exemplo:

$ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
4
pdp

Para apenas o tamanho do diretório em um formato legível, use o seguinte:

du -hs directoryname

Isso provavelmente não está na seção correta, mas a partir da linha de comando, você poderia tentar:

ls -sh filename

O -s é tamanho, e o -h é legível por humanos.

Use -l para mostrar na lista ls, como abaixo:

ls -shl
1
Shiv Singh

du /foldername é o comando padrão para saber o tamanho de uma pasta. A melhor prática é encontrar as opções lendo a man page:

man du

Você deve ler a página man (available online ) antes de usar o comando.

0
Balaswamy vaddeman

Aqui está um script POSIX que funcionará com:

  • Um arquivo
  • Arquivos
  • Um diretório
  • Diretórios
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

fonte

0
Steven Penny

Se o diretório desejado tiver muitos subdiretórios, use o seguinte:

$ cd ~/your/target/directory
$ du -csh 

-c, --total produz um total geral
- s, --summarize exibe apenas um total para cada argumento
- h, - tamanhos de impressão legíveis em humanos em formato legível por humanos (por exemplo, 1K 234M 2G)

que então produziria um total geral do uso de memória por todos os arquivos/pastas no diretório atual.

0
kmario23