Я думаю, что это должен быть комментарий или редактирование ответа ThinkingMedia на этот самый вопрос ( проверьте свободное место на диске для текущего раздела в bash ), но мне не разрешено комментировать (недостаточно репутации), и мое изменение было отклонено (причина: «это должен быть комментарий или ответ»). Так что, пожалуйста, силы вселенной ТАК, не проклинайте меня за повторение и исправление чужого «ответа». Но кто-то в Интернете ошибался! ™ и не разрешили мне это исправить.
Код
df --output=avail -h "$PWD" | sed '1d;s/[^0-9]//g'
имеет существенный недостаток: да, он будет выводить 50Gбесплатно как 50, но он также будет выводить 5.0Mбесплатно как 50, или 3.4Gсвободный как 34, или 15Kсвободный как 15.
Чтобы создать скрипт с целью проверки определенного количества свободного дискового пространства, вы должны знать устройство, с которым вы проверяете. Удалите его (как sedв примере выше) числа больше не имеют смысла.
Если вы действительно хотите, чтобы он работал, вам нужно будет сделать что-то вроде:
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;
Также для установщика df -k $INSTALL_TARGET_DIRECTORYможет иметь больше смысла, чем df -k "$PWD". Наконец, обратите внимание, что --outputфлаг доступен не во всех версиях df / linux.
-Pфлагdf, чтобы получить все в одной строке.