如何通过终端将千字节转换为兆字节或千兆字节?

Avi*_*Raj 19 command-line

我试图找到我的磁盘的大小,所以我运行了下面的命令

$ sudo fdisk -s /dev/sda
976762584
Run Code Online (Sandbox Code Playgroud)

它显示如上。我认为976762584磁盘的大小()以千字节为单位显示。我如何通过终端将值转换为兆字节或千兆字节以便更好地理解?

Luí*_*hin 13

numfmtGNU Coreutils 的一部分)可以在这里使用:

$ sudo fdisk -s /dev/sda | numfmt --to=iec-i --suffix=B --format="%.2f"
931.52MiB
Run Code Online (Sandbox Code Playgroud)


Joh*_*024 12

shell 执行固定宽度的整数算术而不检查溢出。因此,在进行可能涉及大数或分数的计算时,这bc是一个不错的选择。要获得兆字节:

$ echo "scale=2; $(sudo fdisk -s /dev/sda6) / 1024" | bc
13641.75
Run Code Online (Sandbox Code Playgroud)

要获得千兆字节:

$ echo "scale=2; $(sudo fdisk -s /dev/sda6) / 1024^2" | bc
12.70
Run Code Online (Sandbox Code Playgroud)

分配scale=2告诉bc显示两位小数。


Avi*_*Raj 5

在 awk

要以兆字节为单位查找磁盘大小,

$ sudo fdisk -s /dev/sda | awk '{$1=$1/1024; print $1,"MB";}'
953870 MB
Run Code Online (Sandbox Code Playgroud)

要以千兆字节为单位查找磁盘大小,

$ sudo fdisk -s /dev/sda | awk '{$1=$1/(1024^2); print $1,"GB";}'
931.513 GB
Run Code Online (Sandbox Code Playgroud)