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