运行 Linux。我在同一台机器上安装了两个相同的驱动器。CP、MV 或 RSYNC 哪个更快?为什么一个比另一个快?有没有更快的替代方案?
答案1
当源和目标安装在不同的分区上时,cp
其mv
性能大致相同,因为mv
无法优化任何东西。
rsync
在进行增量传输(例如进行每日备份)或目标为非常远程和/或通信不可靠(例如通过互联网)。
rsync
如果您愿意的话,还可以提供一个不错的运行进度条:)
您可以对mv
和进行基准测试rsync
,但rsync
会自行报告传输时间和速度,而您必须time mv
随后计算速度。
答案2
我认为 cp 是最快的,即使速度只是略快。
在驱动器之间,“mv”本质上相当于 cp + rm(复制到目标,然后从源中删除)。在同一个文件系统上,“mv”实际上并不复制数据,它只是重新映射 inode,因此它比 cp 快得多。
Rsync 会比 cp 慢,因为它仍然需要复制整个文件 - 并且它有额外的开销(即使在这种情况下很小)。如果您已经拥有目标驱动器上的大多数数据并且只需要复制一小部分增量,Rsync 可能会胜出。
这 3 个有点类似这里。