หากคุณต้องการคุณสามารถใช้สคริปต์ทุบตีของฉันเพื่อจุดประสงค์นั้น จริง ๆ แล้วมันทำอะไรมากกว่าที่คุณต้องการเล็กน้อยเช่นมันจะแสดงว่ามีการใช้พื้นที่มากแค่ไหน หวังว่าคุณจะชอบมัน :) และฉันก็หวังว่าผลลัพธ์จะเป็นระเบียบเรียบร้อยเหมือนในกล่อง linux ของฉัน ... (หมายเหตุ: มันจะแสดงเฉพาะฮาร์ดแวร์ที่แท้จริงเช่น HDDs และ DVD-ROM ของคุณ แต่นั่นก็เพียงพอแล้วสำหรับวัตถุประสงค์ของฉัน)
หมายเหตุสำคัญ: สคริปต์นี้อาจจะต้องมีการทำงานภายใต้sudo
blkid
ครั้งเดียวเพราะ อย่างน้อยใน distro ของฉันblkid -o export
จะแสดงผลเป็นศูนย์เมื่อทำงานเป็นผู้ใช้ปกติหลังจากบูตเครื่อง นี่เป็นเพราะใน "การเรนเดอร์ผู้ใช้ทั่วไป" ของblkid
ข้อมูลจะถูกดึงจากแคชไฟล์ (ปกติ/run/blkid/blkid.tab
) ซึ่งสามารถเขียนได้โดยเท่านั้นroot
และจะต้องมีการรันหนึ่งครั้งภายใต้sudo
เพื่อรับข้อมูลที่มีอยู่ในปัจจุบัน
#!/bin/bash
# LICENSE: GPL
if [[ $(id -u) -ne 0 ]]; then
if [[ ! -s /run/blkid/blkid.tab ]]; then
# no cache file found when run as regular user
# this will require one run under sudo to populate cache file
echo -e "Cache file does not exist or is empty.\nPlease give your root password to continue:\n\n"
sudo blkid >/dev/null
fi
fi
df -P |
sort |
awk 'BEGIN {
fmthdr = "%-12s%-22s%-10s\t%-5s\n"
# since we want to use single quotes for showing label names, we had better
# replace the problematic single quote character by its hex representation, "\x27"
fmtlin_w_qu = "%-12s\x27%-17s\x27\t %-10s\t%4s used\n"
fmtlin_wo_qu = "%-12s%-17s\t %-10s\t%4s used\n"
printf fmthdr, " Device ", "Volume Label", "File System", "Storage usage"
printf fmthdr, "---------", "------------", "-----------", "-------------"
}
/^\/dev\/[sh]/{
lab = "" # CLEAR lab w/every run (very important!)
("blkid -o export "$1" | grep LABEL | cut -f2 -d=") | getline lab
("blkid -o export "$1" | grep TYPE | cut -f2 -d=") | getline fs
if (lab == "") {
lab = "<none>"
fmtlin = fmtlin_wo_qu
}
else
fmtlin = fmtlin_w_qu
printf fmtlin, $1, lab, fs, $5
}'