Как я могу проверить все используемое пространство на файловой системе в 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