文件大小的十六进制

文件大小的十六进制

我正在学习一些内核开发的教程。我遇到了一个必须使用dd类似

dd ... if=PBL.bin of=... count=block_number

变量block_number定义为

The HEX of ($filesize - 1)/512 + 1

其中,是上述命令中给出的$filesize输入文件的文件大小。PBL.bindd

我该如何计算这个值?提前致谢

答案1

关于什么:

printf "%x" `stat -c "%b" PBL.bin`

printf 将以十六进制格式(%x)打印来自 stat 的输出,该输出仅请求文件分配的块数(%b)。

如果您不相信 stat 报告的分配的块数,则手动执行:

printf "%x" $(( (`stat -c "%s" PBL.bin ` - 1) / 512 + 1))

因此,您需要获取文件大小,然后手动进行计算

答案2

我同意dd接受count十进制。无论如何,这是 Perl 获得您要求的方法:

perl -e 'printf ("%x\n", -s "PBL.bin")'

相关内容