4

我有一个包含 10 个字节的 0x00 的二进制文件 zero.bin,以及一个包含 5 个字节的 0x01 的数据文件 data.bin。我想用 data.bin 替换 zero.bin 的前 5 个字节。我试过了

dd if=data.bin of=zero.bin bs=1 count=5

但是,zero.bin 被截断,最后变成 0x01 的 5 个字节。我想保留 0x00 的尾随 5 个字节。

4

3 回答 3

9

没问题,只需添加conv=notrunc

dd if=data.bin of=zero.bin bs=1 count=5 conv=notrunc
于 2012-04-26T05:22:51.050 回答
1

你有一半的解决方案;将其放入临时文件tmp.bin而不是zero.bin, 然后

dd if=zero.bin bs=1 seek=5 skip=5 of=tmp.bin
mv zero.bin old.bin # paranoia
mv tmp.bin zero.bin
于 2012-04-26T01:58:06.483 回答
0

不要坚持使用 dd(1)。还有其他工具,例如:

(cat data.bin && tail -c +5 zero.bin) > updated.bin
于 2012-04-26T02:05:54.477 回答