Для 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 (додані до ~/.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можна перелічити використання диска на різних кріпленнях на сервері, якщо вони задані належними шляхами. Однак він показує однакові «Filesystem» і «Mountsed on» для всіх контурів, оскільки (я вважаю) це єдина точка монтажу (що стосується цієї 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...)
де значення в байтах, а поріг - значення на порядок 1000. Підсумок цього методу полягає в тому, що ви можете легко налаштувати його для отримання друкованих значень (без префікса) у потрібному діапазоні та з кількома значущими цифрами до вашого вибір. У порівнянні з випадком зі стандартними утилітами з -hперемикачами, де формат часто фіксується.
Звичайно, цей розрахунок часто можна зробити більш ефективним та / або елегантним, але це питання до конкретної мови, на якій він написаний. Чесно кажучи, якщо він використовується в сценарії користувача, який запускається лише зараз і потім для інтерактивного перегляду деяка інформація, ефективність насправді не викликає занепокоєння.