Estou tentando escrever um script que calcule o tamanho de um diretório e, se o tamanho for menor que 10 GB e maior que 2 GB, faça alguma ação. Onde preciso mencionar o nome da minha pasta?
# 10GB
SIZE="1074747474"
# check the current size
CHECK="`du /data/sflow_log/`"
if [ "$CHECK" -gt "$SIZE" ]; then
echo "DONE"
fi
du
é e como todos conhecem todos esses comandos: Você pode digitarman du
seu terminal para pesquisar o comando du no manual. Isso exibirá uma saída que você pode visualizar e resumirá todos os sinalizadores como -h, -c, -s, -b, -B, --apparent-size, etc. que respondam às sugestões que você está usando. Em seguida, você pode decidir por si mesmo como deseja usar melhordu
para seu caso de uso específico.Respostas:
Você pode fazer:
que lhe dará o tamanho do seu diretório de destino.
Se você quer uma saída breve,
du -hcs your_directory
é bom.fonte
du -hs
==du -hs .
.du | sort -n
ele classificará os diretórios por tamanhodu -hcs dir_name/*
inclui as subpastasse você quiser apenas ver o tamanho da pasta e não as subpastas, poderá usar:
Atualizar:
Você deve saber que
du
mostra o espaço em disco usado; e não o tamanho do arquivo.Você pode usar
--apparent-size
se quiser ver a soma dos tamanhos reais de arquivo.E é claro que não há necessidade da opção
-h
(legível por humanos) dentro de um script.Em vez disso, você pode usar
-b
para facilitar a comparação dentro do script.Mas você deve observar que isso
-b
se aplica--apparent-size
por si só. E pode não ser o que você precisa.então eu acho que você deveria usar
--block-size
ou-B
fonte
Use um resumo (
-s
) e bytes (-b
). Você pode cortar o primeiro campo do resumo comcut
. Juntando tudo:fonte
Para obter apenas o tamanho do diretório, nada mais:
saída parece
fonte
--max-depth
é muito útil para controlar utilmente a saída! por exemplo, para ter uma boa noção do que está acontecendo dentro de um diretório:du -h --max-depth=1
Para verificar o tamanho de todos os diretórios em um diretório, você pode usar:
du -h --max-depth=1
fonte
du -h -d 1
no android.du -h -d 1
no OSX #se você quiser apenas ver o tamanho agregado da pasta e provavelmente no formato MB ou GB, tente o script abaixo
fonte
-g
para-m
contagens de 1 Gbyte e 1 Mbyte. viaman du
fonte
Se ajudar, você também pode criar um alias no seu
.bashrc
ou.bash_profile
.Isso imprime o tamanho do diretório atual ou do diretório que você passou como argumento.
fonte