df
comando :Segnala l'utilizzo dello spazio su disco del file systemdu
comando :Stimare l'utilizzo dello spazio file
Digita df -h
o df -k
per elencare lo spazio libero su disco:
$ df -h
O
$ df -k
du
mostra quanto spazio sta utilizzando uno o più file o directory:
$ du -sh
Il -s
opzione riassume lo spazio utilizzato da una directory e -h
l'opzione fornisce Leggibile dall'uomo uscita.
Sì:
df -k .
per la directory corrente.
df -k /some/dir
se vuoi controllare una directory specifica.
Potresti anche voler dare un'occhiata al stat(1)
comando se il tuo sistema lo ha. È possibile specificare i formati di output per semplificare l'analisi dello script. Ecco un piccolo esempio:
$ echo $(($(stat -f --format="%a*%S" .)))
Penso che questo dovrebbe essere un commento o una modifica alla risposta di ThinkingMedia proprio su questa domanda (controlla lo spazio libero su disco per la partizione corrente in bash), ma non sono autorizzato a commentare (non abbastanza rappresentante) e la mia modifica è stata rifiutata (motivo:"questo dovrebbe essere un commento o una risposta"). Quindi, per favore, poteri dell'universo SO, non dannatemi per aver ripetuto e corretto la "risposta" di qualcun altro. Ma qualcuno su Internet si è sbagliato!™ e non mi ha permesso di aggiustarlo.
Il codice
df --output=avail -h "$PWD" | sed '1d;s/[^0-9]//g'
ha un difetto sostanziale:Sì, produrrà 50G
free come 50 -- ma produrrà anche 5.0M
gratuito come 50 o 3.4G
gratuito come 34 o 15K
gratuito come 15.
Per creare uno script con lo scopo di controllare una certa quantità di spazio libero su disco devi conoscere l'unità con cui stai controllando. Rimuovilo (come sed
fa nell'esempio sopra) i numeri non hanno più senso.
Se vuoi davvero che funzioni, dovrai fare qualcosa del tipo:
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;
Anche per un programma di installazione su df -k $INSTALL_TARGET_DIRECTORY
potrebbe avere più senso di df -k "$PWD"
.Infine, tieni presente che --output
flag non è disponibile in tutte le versioni di df / linux.