ฉันคิดว่านี่ควรเป็นความคิดเห็นหรือการแก้ไขคำตอบของ ThinkingMedia สำหรับคำถามนี้ ( ตรวจสอบพื้นที่ว่างในดิสก์สำหรับพาร์ติชันปัจจุบันใน bash ) แต่ฉันไม่ได้รับอนุญาตให้แสดงความคิดเห็น (ตัวแทนไม่เพียงพอ) และการแก้ไขของฉันถูกปฏิเสธ (เหตุผล: "นี่ควรเป็นความคิดเห็นหรือคำตอบ") ดังนั้นได้โปรดพลังของจักรวาล SO อย่าด่าฉันที่ทำซ้ำและแก้ไข "คำตอบ" ของคนอื่น แต่มีคนบนอินเทอร์เน็ตคิดผิด! ™และพวกเขาไม่ยอมให้ฉันแก้ไข
รหัส
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
คุณจะได้รับทั้งหมดในบรรทัดเดียว