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

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

0
задан 10 July 2017 в 13:08

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 шоу по умолчанию).

1
ответ дан 2 November 2019 в 23:36

Необходимо использовать его как так:

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

Или:

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

Результат:

599G
0
ответ дан 2 November 2019 в 23:36

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

Похожие вопросы: