Я пытаюсь найти размер моего диска, поэтому я запустил следующую команду
$ sudo fdisk -s /dev/sda
976762584
Это показывает, как указано выше. Я думаю, что размер ( 976762584
) диска отображается в килобайтах. Как преобразовать значение в мегабайты или гигабайты через терминал для лучшего понимания?
command-line
Авинаш Радж
источник
источник
df -h /
. Показать размер/
в-h
читаемом формате.blockdev --getsize64
Ответы:
Оболочка выполняет целочисленную арифметику фиксированной ширины без проверки переполнения. Таким образом, при выполнении вычислений, которые могут включать большие числа или дроби,
bc
это хороший выбор. Чтобы получить мегабайты:Чтобы получить гигабайты:
Присвоение
scale=2
говоритbc
отображать два десятичных знака.источник
bc <<<"scale=2; $(sudo fdisk -s /dev/sda6) / 1024^2"
numfmt
(часть GNU Coreutils ) можно использовать здесь:источник
В awk
Чтобы найти размер диска в мегабайтах,
Чтобы найти размер диска в гигабайтах,
источник
sudo fdisk -s /dev/sda
тебя можно использоватьdf | grep ^\/dev.*/\$
sudo fdisk
был областью действия проекта, определенной в вопросе.Если размер указан в килобайтах, вам необходимо рассчитать с помощью встроенных выражений Bash. Предполагая, что размер блока = 512B, вы должны ввести:
Это покажет размер диска в КиБ. Чтобы пойти дальше, просто добавьте
/1024
в конец выражения:Это покажет размер диска в MiB и так далее.
источник
$[...]
формат устарел и, какman bash
говорится, «будет удален в следующих версиях». В настоящее время предпочтительным форматом для арифметики оболочки является$((...))
.sudo
отсутствует. Также единица измерения не распечатывается.echo $((($(cat /sys/block/sda/size)*512)/1024**3))GB
Вы можете сделать это изначально с помощью чисел Bash и псевдооплавающих чисел. Определите эту функцию в вашем
~/.bashrc
и снова откройте свой терминал:Теперь проверьте это:
источник
Существует инструмент под названием «Единицы измерения», который можно использовать для преобразования единиц измерения:
Он доступен в виде пакета через
apt install units
.Это довольно стандартный инструмент, который можно найти установленным по умолчанию в различных других UNIX-подобных системах (например, FreeBSD ). Имейте в виду, что синтаксис модулей (1) может отличаться в разных реализациях, доступных в различных операционных системах. Вот то же самое преобразование, но на этот раз с модулями FreeBSD (1) :
источник