Ho un file vuoto (ci sono solo zeri) di dimensione 9,0KB e devo scriverci un altro file (con dimensione 1,1KB), ma il primo file non deve perdere le sue dimensioni o il resto del suo contenuto. Quindi, se l'intero file è 00000000000000...
ora, ho bisogno di scrivere il secondo file e lasciare gli zeri così come sono. Ho provato a usare dd
, ma non ci sono riuscito:il file viene ridimensionato.
dd if=out/one.img of=out/go.img
Qualcuno sa come posso farlo?
Risposta accettata:
Per sovrascrivere l'inizio del file di destinazione senza troncarlo, dai il notrunc
direttiva di conversione:
$ dd if=out/one.img of=out/go.img conv=notrunc
Se vuoi che i dati del file di origine aggiungano alla destinazione, puoi farlo con il seek
direttiva:
$ dd if=out/one.img of=out/go.img bs=1k seek=9
Questo dice a dd
che la dimensione del blocco sia 1 kiB, in modo che il seek
va avanti di 9 kiB prima di eseguire la scrittura.
Puoi anche combinare le due forme. Ad esempio, per sovrascrivere il secondo Blocco da 1 kiB nel file con una sorgente da 1 kiB:
$ dd if=out/one.img of=out/go.img bs=1k seek=9 conv=notrunc
Cioè, salta il primo 1 kiB del file di output, sovrascrive i dati che trova lì con i dati del file di input, quindi chiude l'output senza prima troncarlo.