J'ai un fichier vide (il n'y a que des zéros) de taille 9,0 Ko et j'ai besoin d'y écrire un autre fichier (de taille 1,1 Ko), mais le premier fichier ne doit pas perdre sa taille ni le reste de son contenu. Donc si le fichier entier est 00000000000000...
maintenant, je dois y écrire un deuxième fichier et laisser les zéros tels quels. J'ai essayé d'utiliser dd
, mais je n'ai pas réussi - le fichier se redimensionne.
dd if=out/one.img of=out/go.img
Est-ce que quelqu'un sait comment puis-je le faire ?
Réponse acceptée :
Pour écraser le début du fichier de destination sans le tronquer, donnez le notrunc
instruction de conversion :
$ dd if=out/one.img of=out/go.img conv=notrunc
Si vous vouliez que les données du fichier source soient ajoutées à la destination, vous pouvez le faire avec le seek
instruction :
$ dd if=out/one.img of=out/go.img bs=1k seek=9
Cela indique dd
que la taille du bloc est de 1 ko, de sorte que le seek
avance de 9 ko avant de faire l'écriture.
Vous pouvez également combiner les deux formes. Par exemple, pour écraser la seconde Bloc de 1 Ko dans le fichier avec une source de 1 Ko :
$ dd if=out/one.img of=out/go.img bs=1k seek=9 conv=notrunc
Autrement dit, il ignore le premier 1 Ko du fichier de sortie, écrase les données qu'il y trouve avec les données du fichier d'entrée, puis ferme la sortie sans la tronquer au préalable.