Я уже попробовал du-ch, df-h и df-h - общее количество, но все это заканчивается к их определенному размеру папки. Потребность знать, как я могу получить общее использованное пространство в человекочитаемой форме. Надежда на справку.Заранее спасибо.
В первую очередь, давайте разъясним несколько вещей. Когда Вы делаете 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