Получить только размер смонтированной файловой системы

Получить только размер смонтированной файловой системы

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

Чтобы получить размер этой смонтированной файловой системы, я выполнил следующую команду:

df --output=target,size | grep -w /mnt/xyz

Результат, который я получил, был примерно таким:

/mnt/xyz             4339044

Я знаю, как использовать, cutно здесь это бесполезно, так как пробел между строкой и целыми числами мне неизвестен. Есть ли способ просто напечатать этот размер на терминале?

решение1

Вы можете сделать это без grep:

df --output=target,size /mnt/xyz | awk ' NR==2 { print $2 } '

dfпринимает в качестве аргумента точку монтирования; вы можете указать, что awkнужно вывести только вторую строку (NR==2) и второй аргумент, $2.

Или еще лучше, вырежьте цель, поскольку вы ее не выводите, и она станет:

df --output=size /mnt/xyz | awk ' NR==2 '

Когда я был новичком, мне также удавалось обходить cutограничения, используя tr -s " "(squeeze) для удаления лишних пробелов, например:

df --output=target,size /mnt/xyz | tail -1 | tr -s " " | cut -f2 -d" "

решение2

Также есть findmntкоманда, которая может вывести количество байтов или «человеческое» число (степени числа 1024 с не-ISO-сокращениями, к сожалению):

$ findmnt -no size /mnt/xyz
 9.7G
$ findmnt -bno size /mnt/xyz
10434699264

Связанный контент