Ich habe eine leere Datei (nur Nullen sind drin) der Größe 9,0KB und ich muss eine weitere Datei (mit der Größe 1,1KB) hineinschreiben, aber die erste Datei darf weder ihre Größe noch den Rest ihres Inhalts verlieren. Also, wenn die ganze Datei 00000000000000...
ist Jetzt muss ich eine zweite Datei hineinschreiben und die Nullen so lassen, wie sie sind. Ich habe versucht, dd
zu verwenden , aber ich habe keinen Erfolg – Datei ändert die Größe.
dd if=out/one.img of=out/go.img
Weiß jemand wie ich das machen kann?
Akzeptierte Antwort:
Um den Anfang der Zieldatei zu überschreiben, ohne ihn abzuschneiden, geben Sie notrunc
an Konvertierungsanweisung:
$ dd if=out/one.img of=out/go.img conv=notrunc
Wenn Sie möchten, dass die Daten der Quelldatei angehängt werden zum Ziel, das geht mit seek
Direktive:
$ dd if=out/one.img of=out/go.img bs=1k seek=9
Dies teilt dd
mit dass die Blockgröße 1 kiB beträgt, damit der seek
geht um 9 KB vorwärts, bevor der Schreibvorgang ausgeführt wird.
Sie können die beiden Formen auch kombinieren. Zum Beispiel, um die Sekunde zu überschreiben 1-KB-Block in der Datei mit einer 1-KB-Quelle:
$ dd if=out/one.img of=out/go.img bs=1k seek=9 conv=notrunc
Das heißt, es überspringt die ersten 1 KB der Ausgabedatei, überschreibt die dort gefundenen Daten mit Daten aus der Eingabedatei und schließt dann die Ausgabe, ohne sie vorher abzuschneiden.