Update:
> $ time cat infile >outfile
>
> If 'infile' is on the order of 140 MB, 'time' might show something as low as:
>
> real 0m0.146s
> user 0m0.000s
> sys 0m0.109s
> CPU % 74.29
>
> or as high as:
>
> real 0m0.328s
> user 0m0.000s
> sys 0m0.109s
> CPU % 33.31
>
> If 'outfile' doesn't exist, the 'cat' runs much more quickly:
>
> real 0m0.082s
> user 0m0.000s
> sys 0m0.081s
> CPU % 99.77
When an existing file is truncated, which the shell does when you use stdout redirection, all the blocks that were in it have to be moved to the file system's free block list. Exactly what happens there may depend on what kind of file system you are using, but it is extra work that doesn't have to be done if you are creating a new file, which may explain the time difference.
--Greg