我尝试查找磁盘的大小,因此我运行了以下命令
$ sudo fdisk -s /dev/sda
976762584
显示的内容如上。我认为976762584
磁盘的大小()以千字节为单位显示。如何通过终端将值转换为兆字节或千兆字节以便更好地理解?
答案1
numfmt
(部分GNU 核心实用程序) 可以在这里使用:
$ sudo fdisk -s /dev/sda
976762584
$ sudo fdisk -s /dev/sda | numfmt --to=iec-i --suffix=B --format="%.2f"
931.52MiB
答案2
shell 执行固定宽度整数运算,不检查溢出。因此,在进行可能涉及大数或分数的计算时,bc
这是一个不错的选择。要获取兆字节:
$ echo "scale=2; $(sudo fdisk -s /dev/sda6) / 1024" | bc
13641.75
要获取千兆字节:
$ echo "scale=2; $(sudo fdisk -s /dev/sda6) / 1024^2" | bc
12.70
作业scale=2
要求bc
显示两位小数。
答案3
在 awk 中
要查找磁盘的大小(以兆字节为单位),
$ sudo fdisk -s /dev/sda | awk '{$1=$1/1024; print $1,"MB";}'
953870 MB
要查找磁盘的大小(以 GB 为单位),
$ sudo fdisk -s /dev/sda | awk '{$1=$1/(1024^2); print $1,"GB";}'
931.513 GB
答案4
如果大小以千字节为单位,则需要通过 Bash 内置表达式进行计算。假设块大小 = 512B,您必须输入:
echo $((`fdisk -s /dev/sda`*512/1024))
这将以 KiB 为单位显示磁盘大小。要进一步操作,只需/1024
在表达式末尾添加:
echo $((`fdisk -s /dev/sda`*512/1024/1024))
这将显示磁盘大小(以 MiB 为单位)等等。