สำหรับdf
การคำนวณผลรวมใช้--totals
ตัวเลือก หากคุณต้องการผลรวมทั้งหมดในไดรฟ์ที่เลือกให้ระบุเป็นอาร์กิวเมนต์
ตัวอย่าง (และผลลัพธ์จากคอมพิวเตอร์ของฉัน)
นี่คือผลรวมสำหรับการติดตั้งในเครื่องทั้งหมด:
$ df --total -hl
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
none 490M 660K 489M 1% /dev
none 497M 1,5M 495M 1% /dev/shm
none 497M 260K 496M 1% /var/run
none 497M 0 497M 0% /var/lock
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 19G 12G 7,3G 62%
การ จำกัด ให้กับไดรฟ์สองสามตัว (โปรดทราบว่าหากพา ธ ที่ระบุไม่ใช่จุดต่อที่แน่นอนระบบจะใช้จุดเมาท์ที่มีค่าที่ใกล้เคียงที่สุดที่สุด[ดูหมายเหตุที่จุดสิ้นสุด] ):
$ df -hl --total /home /fastdisk
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 14G 12G 2,1G 85% /
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
total 17G 12G 5,3G 69%
หรือใช้dev
ชื่อ:
$ df -hl --total /dev/sda1 /dev/sdb1
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3,7G 418M 3,3G 12% /fastdisk
/dev/sdb1 14G 12G 2,1G 85% /
total 17G 12G 5,3G 69%
การปรับแต่งเพิ่มเติม
หากคุณต้องการแสดงรายการการเมานต์ทั้งหมดยกเว้นรายการ 'พิเศษ' คุณสามารถใช้-x
ตัวเลือกเพื่อแยกตามประเภทพาร์ติชัน (ใช้-T
ตัวเลือกเพื่อแสดงประเภท)
โดยส่วนตัวแล้วสำหรับการใช้งานแบบโต้ตอบฉันใช้นามแฝงทุบตีต่อไปนี้ (เพิ่มใน~/.bash_aliases
) เพื่อแยกการเมาท์ 'ที่ไม่ใช่ทางกายภาพ'
alias df='df -h -x devtmpfs -x tmpfs -x debugfs'
บันทึก
การระบุพา ธ ภายในจุดเมานท์บางครั้งอาจให้ผลลัพธ์ที่แตกต่างกันในรูปแบบที่ระบุพา ธ ที่แน่นอนไปยังจุดเมานท์ ตัวอย่างเช่นบนแล็ปท็อปของฉันฉันใช้sshfs
เพื่อเมานต์ไฟล์เซิร์ฟเวอร์ของฉัน
df -h ~/.server-root/ ~/.server-root/disks/A ~/.server-root/disks/B
Filesystem Size Used Avail Use% Mounted on
johan@server:/ 185G 58G 118G 33% /home/johan/.server-root
johan@server:/ 1,9T 637G 1,2T 35% /home/johan/.server-root
johan@server:/ 1,8T 1,1T 757G 59% /home/johan/.server-root
รากเซิร์ฟเวอร์ ( /
) ~/.server-root
จะติดตั้งอยู่ที่ อย่างไรก็ตามบนเซิร์ฟเวอร์ดิสก์จะถูกเมาท์/disks/*
ซึ่งdf
(บนแล็ปท็อป) ไม่ 'รู้' เกี่ยวกับ
เห็นได้ชัดว่าdf
สามารถแสดงรายการการใช้งานดิสก์ในการติดตั้งที่แตกต่างกันบนเซิร์ฟเวอร์หากได้รับเส้นทางที่เหมาะสม อย่างไรก็ตามมันแสดง“ ระบบไฟล์” และ“ เมานต์ที่” เหมือนกันสำหรับเส้นทางทั้งหมดเนื่องจาก(ฉันเชื่อ)ที่เป็นจุดเชื่อมต่อเท่านั้น (เกี่ยวข้องกับการsshfs
เมานต์นี้) ในตารางการเมานต์เคอร์เนล
สิ่งอื่น:ไม่เกี่ยวข้องกับคำถาม แต่เกี่ยวข้องกับคำตอบก่อนหน้าสำหรับคำถาม
การเพิ่มตัวเลขด้วยawk
สคริปต์ (หรือคล้ายกัน) เช่นเดียวกับคำตอบที่โพสต์ก่อนหน้านี้ทำไม่ได้เป็นความคิดที่ดีเมื่อใช้-h
แฟล็ก นี่เป็นเพราะต้องการการจัดการพิเศษ คุณไม่สามารถทำได้size+=$2;
สำหรับเขตข้อมูลที่อยู่418M
ในแถวหนึ่งและ12G
อีกแถวหนึ่งและรับสิ่งที่เป็นประโยชน์จากมัน ...
สำหรับตัวอย่างที่มีawk
การเพิ่ม500M
ไปยัง 10.2G
อัตราผลตอบแทน
$ echo -e '500M\n10.2G' | awk '{size+=$1;} END{print size;}'
510.2
510.2 จากอะไร
มีปัญหาชัดเจนที่นี่ ดังนั้นเพียงแค่เป็นเคล็ดลับที่จะจำเมื่อทำ (อัตโนมัติ) การคำนวณในการส่งออกของdf
(และคนอื่น ๆ ที่สามารถใช้'คนอ่าน'ตัวเลข) ตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้-h
แฟล็กและอินพุตไปยังสคริปต์การคำนวณแทนการทำให้เป็นมาตรฐาน (ตัวอย่างเช่นไบต์บล็อก KB หรืออะไรก็ตาม) และทำการ'ปรับสเกลการแสดงผล'ที่ส่วนท้าย ไม่ยากในภาษาสคริปต์และการเขียนโปรแกรมส่วนใหญ่เพื่อเพิ่มสิ่งที่ชอบ:
If value < threshold Then
print (value),"B"
Else If value < 1024*threshold Then
print (value/1024),"kB"
Else If value < 1024*1024*threshold Then
print (value/1024/1024),"MB"
(and so on...)
โดยที่valueอยู่ในหน่วยไบต์และขีด จำกัดเป็นค่าตามลำดับ 1000 ผลที่สุดของวิธีนี้คือคุณสามารถปรับแต่งมันเพื่อสร้างค่าที่พิมพ์ได้ (ไม่รวมส่วนนำหน้า) ในช่วงที่ต้องการและมีจำนวนตัวเลขที่สำคัญสำหรับคุณ เลือก เมื่อเทียบกับเคสที่มียูทิลิตี้มาตรฐานพร้อม-h
สวิตช์ซึ่งรูปแบบมักจะได้รับการแก้ไข
แน่นอนว่าการคำนวณนี้มักจะทำให้มีประสิทธิภาพมากขึ้นและ / หรือสวยงาม แต่นั่นเป็นคำถามสำหรับภาษาเฉพาะที่เขียนไว้ตรงไปตรงมาหากมีการใช้ในสคริปต์ผู้ใช้ที่ทำงานเฉพาะตอนนี้และเพื่อดูแบบโต้ตอบ ข้อมูลบางอย่างประสิทธิภาพไม่ได้เป็นความกังวล