Search code examples
bashdd

Bash: substitute some bytes in a binary file


I have a binary file zero.bin which contains 10 bytes of 0x00, and a data file data.bin which contains 5 bytes of 0x01. I want to substitute the first 5 bytes of the zero.bin with data.bin. I have tried

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

but, the zero.bin is truncated, finally it becomes 5 bytes of 0x01. I want to keep the tailing 5 bytes of 0x00.


Solution

  • No problem, just add conv=notrunc:

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