Didn't anyone get my previous reply on this. I'm wondering about my email server now.
Anyway in summary what I said was the 3 commands you presented would perform about the same. Things to consider. The deletion/truncation bit will proceed more quickly on some file system types. If both files are on the same disk, then cp will do a lot of disk head seeking between the two during the copy. Try to put the temporary file on a different disk if possible. If that is not possible, then try to process/buffer more at a time. dd may be useful for this, or the `pv` command which will give you a progress bar as well as buffer control. cheers, Pádraig.