4

Running linux. I have two identical drives mounted on the same machine. What is faster CP, MV, or RSYNC? Why is one faster than the other? Are there any faster alternatives?

T. Brian Jones
  • 887
  • 3
  • 17
  • 29

2 Answers2

11

I'd argue for cp being the fastest, even if marginally so.

Between drives, 'mv' should essentially amount to cp + rm (copy to destination, then delete from source). On the same filesystem, 'mv' doesn't actually copy the data, it just remaps the inode, so it is far faster than cp.

Rsync will be slower than cp since, it still needs to copy the entire file - and it has additional overhead (even if minor in this case). Rsync may win in the case where you already have the majority of data one the target drive and would only need to copy a small delta.

There is a somewhat of a comparison of the 3 here.

kuttumiah
  • 107
  • 3
cyberx86
  • 20,620
  • 1
  • 60
  • 80
  • +1 because this answer describes in detail those programs' behaviors in different scenarios. IMHO it should be the accepted answer. – MoonSweep Sep 12 '17 at 17:48
5

When the source and destination are mounted on different partitions, cp and mv will perform about the same, since mv cannot optimize anything.

rsync offers advantages when you are doing an incremental transfer (such as when doing a daily backup), or when the destination is very remote and/or communication is unreliable (such as over the Internet).

rsync also provides a nice running progress bar if that's your thing :)

You can benchmark both mv and rsync, but rsync will report transfer times and speeds itself, while you will have to time mv and then calculate the speed afterwards.

adaptr
  • 16,479
  • 21
  • 33