Как я могу проверить все используемое пространство на файловой системе в Linux?

Я уже пробовал du-ch, df -h и df -h --total, но все это приводит к их конкретному размеру папки. Нужно знать, как я могу получить общее использованное пространство в удобочитаемой для человека форме. Надеюсь на вашу помощь. Заранее спасибо.

2 ответа

Прежде всего, давайте уточним несколько вещей. Когда вы делаете df -h --totalЕсть несколько вещей, которые показывают виртуальные файловые системы, такие как tmpfs а также udev, Мы не хотим этого точно, но мы хотим знать все физические файловые системы. Таким образом, мы хотим отфильтровать только /dev Предметы:

$ df -h | grep '^/dev/'
/dev/sda1       110G   77G   29G  74% /
/dev/sdb6       399G  223G  157G  59% /mnt/HDD

Но есть и проблема: -h дает нам общее в удобочитаемом формате. Мы не можем сложить элементы, в которых есть буквы. grep также не может выполнять расчеты. Таким образом, вместо этого давайте использовать awk вместо этого с суммированием 3-го столбца:

$ df --block-size=1 | awk '/^\/dev/{total+=$3}END{print total}'                                                          
320762605568

Большой! теперь нам нужно только найти читаемую человеком версию этого числа. Мы всегда можем написать код в awk для этого, но он уже существует numfmt полезность. Итак, мы можем сделать это:

$ df --block-size=1 | awk '/^\/dev/{total+=$3}END{print total}' | numfmt --to=iec-i --suffix=B --padding=7               
 299GiB

И вот как у вас есть общее количество всех физических устройств, которые смонтированы (что df показывает по умолчанию).

Вы должны использовать это так:

df -h --total / | grep total | awk '{ print $3 }'

Или же:

df -h --total . | grep total | awk '{ print $3 }'

Результат:

599G
Другие вопросы по тегам