Tengo un archivo vacío (solo contiene ceros) de 9,0 KB de tamaño y necesito escribir otro archivo (de 1,1 KB de tamaño), pero el primer archivo no debe perder su tamaño ni el resto de su contenido. Entonces, si todo el archivo es 00000000000000...
ahora, necesito escribir el segundo archivo y dejar los ceros como están. He intentado usar dd
, pero no lo he logrado:el archivo cambia de tamaño.
dd if=out/one.img of=out/go.img
¿Alguien sabe cómo puedo hacerlo?
Respuesta aceptada:
Para sobrescribir el inicio del archivo de destino sin truncarlo, proporcione el notrunc
directiva de conversión:
$ dd if=out/one.img of=out/go.img conv=notrunc
Si desea que los datos del archivo de origen se agreguen al destino, puede hacerlo con seek
directiva:
$ dd if=out/one.img of=out/go.img bs=1k seek=9
Esto le dice a dd
que el tamaño del bloque es de 1 kiB, por lo que seek
avanza 9 kiB antes de realizar la escritura.
También puede combinar las dos formas. Por ejemplo, para sobrescribir el segundo Bloque de 1 kiB en el archivo con una fuente de 1 kiB:
$ dd if=out/one.img of=out/go.img bs=1k seek=9 conv=notrunc
Es decir, omite el primer 1 kiB del archivo de salida, sobrescribe los datos que encuentra allí con datos del archivo de entrada y luego cierra la salida sin truncarla primero.