mv
通常比
cp -r
快,尤其是在同一个文件系统中移动文件时。其主要原因是两者的工作原理不同:
1.mv 命令:
- 工作原理:如果源路径和目标路径在同一个文件系统中,
mv
只会修改文件系统中的元数据,即更新文件的位置指针,而不会实际复制文件内容。因为不需要操作大量的文件数据,速度通常非常快。 - 情况:当文件被移动到同一文件系统中的另一个目录时,
mv
操作几乎是瞬间完成的。
2.cp -r 命令:
- 工作原理:
cp -r
会递归地复制目录及其所有子目录和文件。复制文件涉及读取每个文件的内容并将其写入目标路径,消耗较多的 I/O 资源。因此,复制大量文件或大文件时,速度较慢。 - 情况:即使是在同一文件系统中,
cp
也需要完整地复制文件内容,这会比mv
花费更多时间。
3.结论:
- 在同一个文件系统中:
mv
速度快很多,因为只修改元数据,不需要实际移动文件数据。 - 跨文件系统:如果是从一个文件系统移动到另一个文件系统(如从一块硬盘移动到另一块硬盘),
mv
的表现与cp
类似,因为此时文件需要实际复制。
因此,在同一文件系统中,mv
比 cp -r
快得多。