i did this more for the fact that sometimes it want to know what progress really large files are at.
this method does cause some overhead and is not as fast as just a regular cp, but who cares.
user $ pv ../test500M | dd of=../test/test500M 500MB 0:00:13 [36.6MB/s] [==============================================>] 100% 1024000+0 records in 1024000+0 records out 524288000 bytes (524 MB) copied, 13.6377 s, 38.4 MB/s user $ time cp ../test500M ../test/ real 0m9.524s user 0m0.080s sys 0m3.310s
in gentoo, just
emerge -av sys-apps/pv
or grab the source here