我有一个二进制文件zero.bin,其中包含10个字节的0x00,以及一个数据文件data.bin,其中包含5个字节的0x01。我想用zero.bin替换zero.bin的前5个字节。我试过了
dd if=data.bin of=zero.bin bs=1 count=5
但是,zero.bin被截断,最后变成5个字节的0x01。我想保留拖尾5字节的0x00。
答案 0 :(得分:9)
没问题,只需添加conv=notrunc
:
dd if=data.bin of=zero.bin bs=1 count=5 conv=notrunc
答案 1 :(得分: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
答案 2 :(得分:0)
不要停止使用dd(1)。还有其他工具,例如:
(cat data.bin && tail -c +5 zero.bin) > updated.bin