Como calcular a filtragem de uso do disco por padrão (por exemplo, *.JPG)?

Como calcular a filtragem de uso do disco por padrão (por exemplo, *.JPG)?

Como posso calcular o espaço em disco consumido apenas por alguns arquivos de um diretório de forma recursiva?

Responder1

find -iname '*.jpg' -print0 | du --files0-from=- -h -c | tail -1

  1. -inamepesquisa sem distinção entre maiúsculas e minúsculas
  2. -print0escreve NULem vez de novas linhas
  3. --files0-from=-NULem vez de novas linhas e lê em stdinvez de argumentos
  4. -hgera resultados em formato legível por humanos (por exemplo, 1Kem vez de 1024)
  5. -cgera um total geral (por exemplo, 23G)
  6. tail -1produzirá apenas o total geral, suprimindo tamanhos de arquivo individuais

Responder2

Com zsh:

zmodload zsh/stat

stat -LA blocks +blocks -- **/*.jpg(NDoN)
print $(( (${(j[+])blocks} + 0) * 512 ))

Imprimiria o uso cumulativo do disco de todos os arquivos cujo nome termina em .jpg(incluindo os ocultos com o Dqualificador). Observe que se houver vários links físicos para o mesmo arquivo, o uso do disco será contado várias vezes (isso é diferente do que a maioria dudas implementações faz).

Se alguns dos arquivos forem ou tipodiretório, que contará apenas o uso do disco dos próprios arquivos do diretório, não dos arquivos que podem ser encontrados ao percorrer esses diretórios (outra diferença com du).

informação relacionada