サイズ9,0KBの空のファイル(ゼロのみが含まれています)があり、別のファイル(サイズ1,1KB)を書き込む必要がありますが、最初のファイルのサイズまたは残りの内容が失われてはなりません。したがって、ファイル全体が00000000000000...
の場合 ここで、2番目のファイルを書き込み、ゼロをそのままにしておく必要があります。 dd
を使おうとしました 、しかし私は成功していません–ファイルのサイズを変更します。
dd if=out/one.img of=out/go.img
どうすればいいのか誰か知っていますか?
承認された回答:
宛先ファイルの先頭を切り捨てずに上書きするには、notrunc
を指定します。 変換ディレクティブ:
$ dd if=out/one.img of=out/go.img conv=notrunc
ソースファイルのデータを追加したい場合 目的地まで、seek
でそれを行うことができます ディレクティブ:
$ dd if=out/one.img of=out/go.img bs=1k seek=9
これはdd
に通知します ブロックサイズが1kiBであるため、seek
書き込みを行う前に9kiB進みます。
2つの形式を組み合わせることもできます。たとえば、秒を上書きするには 1kiBソースのファイル内の1kiBブロック:
$ dd if=out/one.img of=out/go.img bs=1k seek=9 conv=notrunc
つまり、出力ファイルの最初の1 kiBをスキップし、そこで見つかったデータを入力ファイルのデータで上書きしてから、最初に切り捨てずに出力を閉じます。