Nếu bạn thích, bạn có thể sử dụng tập lệnh bash của tôi cho mục đích đó. Nó thực sự làm nhiều hơn một chút so với bạn cần, tức là nó cũng sẽ hiển thị bao nhiêu không gian được sử dụng. Hy vọng bạn thích nó :) Và tôi cũng hy vọng rằng đầu ra sẽ gọn gàng như trên hộp linux của tôi ... (Lưu ý: nó sẽ chỉ hiển thị phần cứng thực như ổ cứng và DVD-ROM của bạn, nhưng điều đó đủ cho mục đích của tôi.)
Lưu ý quan trọng: Tập lệnh này có thể phải được chạy theosudo
ONCE vì blkid
. Ít nhất là trên bản phân phối của tôi, blkid -o export
sẽ xuất ra con số không khi chạy như người dùng thông thường sau khi khởi động . Điều này là do trong "biểu hiện người dùng thông thường" của blkid
, dữ liệu thực sự sẽ được truy xuất từ tệp bộ đệm (thông thường /run/blkid/blkid.tab
), chỉ có thể ghi được root
và do đó sẽ yêu cầu một lần chạy sudo
để có được dữ liệu hiện tại.
#!/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
}'