bytecounter is a Perl program to copy data while keeping track of and showing a status line indicating the data-rate and estimated time remaining. Optionally, it retries on errors, for recovering files from bad media.
bytecounter is primary designed to be used "in-between" two programs, to measure rate of data flow. For instance, you might pipe the output of tar to bytecounter, and redirect bytecounter to a tar file, to get data-rate and ETA information on the tar operation.
Some examples of practical usage are listed in the source code comments. It may operate on files, floppy disks, hard disks, terminals, tapes, CD-ROMs, FIFOs, and anything else you could think of to connect to standard input and standard output.
It includes a mode called 'bccat', which checks the sizes for all named files for use with the ETA feature, and concatenates them together for input.