Eu acho que isso deveria ser um comentário ou uma edição para a resposta da ThinkingMedia sobre esta questão ( verifique o espaço livre em disco para a partição atual no bash ), mas eu não tenho permissão para comentar (não tenho repetições suficientes) e minha edição foi rejeitada (motivo: "deve ser um comentário ou uma resposta"). Então, por favor, poderes do universo SO, não me condenem por repetir e consertar a "resposta" de outra pessoa. Mas alguém na internet errou! ™ e não me deixou consertar.
O código
df --output=avail -h "$PWD" | sed '1d;s/[^0-9]//g'
tem uma falha substancial: Sim, a saída será 50G
gratuita como 50 - mas também será impressa 5.0M
como gratuita como 50 ou 3.4G
como 34 ou 15K
como 15.
Para criar um script com o propósito de verificar uma certa quantidade de espaço livre em disco, você precisa saber a unidade que está verificando. Remova-o (como sed
no exemplo acima) os números não fazem mais sentido.
Se você realmente deseja que funcione, terá que fazer algo como:
FREE=`df -k --output=avail "$PWD" | tail -n1` # df -k not df -h
if [[ $FREE -lt 10485760 ]]; then # 10G = 10*1024*1024k
# less than 10GBs free!
fi;
Além disso, para um instalador, df -k $INSTALL_TARGET_DIRECTORY
pode fazer mais sentido do que df -k "$PWD"
. Finalmente, observe que o --output
sinalizador não está disponível em todas as versões do df / linux.
-P
bandeira paradf
obter tudo em uma linha.