df
comando:informar sobre el uso del espacio en disco del sistema de archivosdu
comando:estimar el uso del espacio de archivos
Escribe df -h
o df -k
para enumerar el espacio libre en disco:
$ df -h
O
$ df -k
du
muestra cuánto espacio están usando uno o más archivos o directorios:
$ du -sh
El -s
opción resume el espacio que utiliza un directorio y -h
opción proporciona legible por humanos salida.
Sí:
df -k .
para el directorio actual.
df -k /some/dir
si desea consultar un directorio específico.
También puede consultar el stat(1)
comando si su sistema lo tiene. Puede especificar formatos de salida para facilitar el análisis de su secuencia de comandos. He aquí un pequeño ejemplo:
$ echo $(($(stat -f --format="%a*%S" .)))
Creo que esto debería ser un comentario o una edición de la respuesta de ThinkingMedia sobre esta misma pregunta (Comprobar el espacio libre en disco para la partición actual en bash), pero no tengo permitido comentar (no hay suficientes representantes) y mi edición ha sido rechazada (motivo:"esto debería ser un comentario o una respuesta"). Entonces, por favor, poderes del universo SO, no me maldigan por repetir y arreglar la "respuesta" de otra persona. ¡Pero alguien en Internet se equivocó!™ y no me dejaron arreglarlo.
El código
df --output=avail -h "$PWD" | sed '1d;s/[^0-9]//g'
tiene un defecto sustancial:sí, generará 50G
gratis como 50, pero también generará 5.0M
gratis como 50 o 3.4G
gratis como 34 o 15K
gratis como 15.
Para crear un script con el propósito de verificar una cierta cantidad de espacio libre en el disco, debe conocer la unidad con la que está verificando. Eliminarlo (como sed
hace en el ejemplo anterior) los números ya no tienen sentido.
Si realmente quieres que funcione, tendrás que hacer 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;
También para un instalador a df -k $INSTALL_TARGET_DIRECTORY
podría tener más sentido que df -k "$PWD"
.Finalmente, tenga en cuenta que el --output
flag no está disponible en todas las versiones de df/linux.