选择选项 status=progress 时,如何解释 dd 的输出?

Jan*_* M. 7 dd coreutils

dd 手册是在这个非常有限的:`

status=LEVEL
              The LEVEL of information to print to stderr; 'none' suppresses
              everything but error messages, 'noxfer' suppresses the final
              transfer statistics, 'progress' shows periodic transfer
              statistics
Run Code Online (Sandbox Code Playgroud)

这并没有说明实际输出,当我复制一个大图像文件时,它看起来像这样,例如:
dd if=input.img of=output.img status=progress

结果是:

在此处输入图片说明

到目前为止的传输速度和复制时间是显而易见的,但前三个数字是什么意思?

Kus*_*nda 9

第一个数字 (1207841280) 是到目前为止复制的字节数。第二个数字被解释为 SI 单位千兆字节(1 GB 是 1000 3个字节)。第三个数字被解释为 IEC 单位Gibibytes(1 GiB 是 1024 3个字节)。请注意“GB”和“GiB”之间的区别。

的的源代码dd在GNU命令coreutils软件包使用变量叫siiec举行最后两个这些数字。请参阅 中print_xfer_stats函数dd.c。实际输出发生在第 821 行。

  • 哦,好吧,我完全错过了单位。 (3认同)
  • @JanM。我也这么做了。直到我从源头弄清楚之后我才看到它们! (3认同)
  • 我来到这里是因为我正在寻找_传输速度_测量单位(SI 与 IEC)并且懒得深入挖掘源代码。事实证明,传输速度是以 SI 单位测量的。这也与 dd 输出中的符号一致,因为 IEC 单位在乘数和单位(“B”)之间有一个额外的“i”。请注意,传输速度单位中没有“i”。感谢@Kusalananda 的出色回答并指出了确切的源代码文件。 (2认同)