Is there a way to show the speed of copying files on a Mac? For example, when copying a file from the hard drive to SDHC card and vice versa.

The reason is that I can check out the max speed of an SDHC card on my Dell PC, but it seems that on there, the card interface is limited to 20MB/s read or write. So I want to check how it is on the iMac 27 inch. Maybe some test program can be used, but I still like to find out any simple way to tell the speed of copying files on the Mac.

(note there needs to be one or more spaces after --human-readable to end that command and break before the source and destination file names are provided)

Then drag the file / folder you wish to copy and drop it onto the terminal window, followed by dragging and dropping the destination directory. Dragging and dropping a file / folder onto a terminal window will place that file/folder's path into the terminal window. Dragging a file is preferred in most cases since it will handle a space in any folder or file name. In this case the space needs an \ to indicate not to end the file name exactly opposite of needing the space earlier.

will the file be copied to the "hard disk cache" and considered done copying? (while the data is not physically copied to the hard drive. For example, if copying a 500MB file from internal hard disk to USB drive, the data might be "read" into the OS's RAM cache, and being written to the USB drive, and while it is still writing, the file is already reported as "finished copying" and the speeding of copying is therefore stated inaccurately high.)
–
太極者無極而生Jun 27 '12 at 2:14

@太極者無極而生 No. Files are not copied to cache. Cache only makes copy seem faster if 1. the line speed is much higher than the disk drive speed and 2. the transfer size fits entirely in the allocated cache. The cache is used such that the maximum line speed can be sustained because it's faster than any drive or transfer line. But the OS writes that cache to the disk all the time. But it's true that when there is nothing left to transfer and while the cache is still full, the OS reports the transfer as finished. That's why you need to sync or unmount/eject and wait while the buffer is emptied. HTH.
–
Paul-Sebastian ManoleJul 24 at 8:43

man rsync in the Terminal and look for Cache. It looks like the OS X version of rsync opts out of OS caching.
–
JBRWilkinsonJul 25 at 11:31

The simplest method is to just tap into the overall IO speed measurements that the system maintains.

If you like the command line, diskutil list shows you what drives map to which disk0, disk1, etc... and iostat 1 will dump the transfer speeds each second. You will need to press Control-C to quit this program when done. Also, if you want a longer measurement just change the 1 to however many seconds you want to average the IO speeds.

If you like graphs, the "Activity Monitor" will aggregate the IO from all disks. Select the tab "Disk Activity", there a live graph of either the IO per second or Throughput (Data) per second over time for all drives combined.