Если хотите, вы можете использовать мой скрипт bash для этой цели. На самом деле он делает немного больше, чем нужно, то есть он также показывает, сколько места занято. Надеюсь, вам понравится :) И я также надеюсь, что вывод будет таким же аккуратным, как на моей коробке Linux ... (Примечание: он будет показывать только реальное оборудование, как ваши жесткие диски и DVD-ROM, но этого достаточно для моих целей.)
Важное примечание: Этот сценарий , возможно , придется работать подsudo
РАЗ из - за blkid
. По крайней мере, в моем дистрибутиве blkid -o export
будет выводить nil при запуске от имени обычного пользователя после загрузки . Это связано с тем, что при «обычном воспроизведении пользователя» 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
}'