我有一个包含 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 个字节。
没问题,只需添加conv=notrunc
:
dd if=data.bin of=zero.bin bs=1 count=5 conv=notrunc
你有一半的解决方案;将其放入临时文件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
不要坚持使用 dd(1)。还有其他工具,例如:
(cat data.bin && tail -c +5 zero.bin) > updated.bin