10 バイトの 0x00 を含むバイナリ ファイル zero.bin と、5 バイトの 0x01 を含むデータ ファイル data.bin があります。zero.bin の最初の 5 バイトを data.bin に置き換えたい。私が試してみました
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