Формат вывода xml
или json
может быть проще, если доступны инструменты для их разбора.:
lshw -quiet -class disk -class storage -xml |
xmlstarlet sel -t -v //size -n |
paste -sd + - |
bc |
numfmt --to=si --suffix=B
json:
lshw -quiet -class disk -class storage -json |
jq '[.children[]|.size]|add' |
numfmt --to=si --suffix=B
Даже если у вас нет xml
/ json
инструмента синтаксического анализа, вывод в этих форматах все равно предпочтительнее, поскольку вы получаете точное количество байтов для начала и, таким образом, не теряете информацию при преобразовании из/в удобочитаемый формат. формат.
Затем вы можете вернуться к некоторому -эвристическому анализу, например, для формата вывода по умолчанию.С ГНУgrep
:
lshw -quiet -class disk -class storage -json |
grep -Po '"size" : \K\d+' |
paste -sd + - |
bc |
numfmt --to=si --suffix=B
Добавлена опция --round=nearest
в GNUnumfmt
(в GNU coreutils с версии 8.21 (2013 ))для округления до ближайшего числа вместо округления в большую сторону. См. также --format=%.3f
для большей точности.
/proc/mounts
и mount
не отображают настройки, включенные в настройки по умолчанию , включая настройки по умолчанию, установленные в параметрах файловой системы с помощью tune2fs
, так что, к сожалению, это нормально.
Чтобы определить, включен ли discard
, необходимо проверить значения по умолчанию, проверить параметры mount
и объединить два набора информации.