Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a large (binary) file that has some corruption near the beginning.

Then, I have a second, smaller file that I obtain by starting to download the same file again, but interrupt after I have enough bytes to fix the original one.

My question is, how do I simply overwrite the beginning of the large file with the contents of the second, smaller file? I could use cat, tail and head, but that would create a copy of the file. There must be a more efficient way.

Oh yes, and I'm looking for a linux command-line solution, if that wasn't obvious. I'm using bash, but I have other shells if that helps.

share|improve this question
add comment

1 Answer 1

up vote 3 down vote accepted
dd conv=notrunc if=good_header of=corrupted_file

The conv=notrunc option is essential here.

share|improve this answer
    
Awesome, this is exactly what I needed. I keep forgetting that dd works on ordinary files as well :) (I can accept your answer in two minutes.) –  Attila O. Dec 15 '12 at 22:45
    
Obviously an awesome answer (I was about to write the same thing). +1. –  gniourf_gniourf Dec 15 '12 at 23:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.