gpt4 book ai didi

cp - 为什么复制比移动慢?

转载 作者:行者123 更新时间:2023-12-01 22:22:24 40 4
gpt4 key购买 nike

我有一个大文件正在移动。实验室中的正常协议(protocol)是将其复制到某处,然后将其删除。

我决定改成mv。

我的问题是,为什么 mv 比 cp 快这么多?

为了测试它,我生成了一个 2.7 GB 大小的文件。

time cp test.txt copy.txt

实际耗时 0m20.113s

time mv test.txt copy.txt

实际耗时 0m12.403s。

TL;DR mv 的速度几乎是复制的两倍。有什么解释吗?这是预期的结果吗?

编辑-

我决定将文件夹移动/复制到当前文件夹以外的目标位置。

time cp test.txt ../copy.txt 

time mv test.txt ../copy.txt

这次cp用了9.238s,mv只用了0.297s。所以不是一些答案所暗示的。

更新

答案是正确的。当我尝试将文件 mv 到同一系统上的不同磁盘时,mvcp 花费的时间几乎相同。

最佳答案

当您 mv 同一文件系统上的文件时,系统只需更改目录条目以反射(reflect)您的重命名。甚至没有读取文件中的数据。

(相同的文件系统意味着:相同的目录或相同的目录树/相同的驱动器,前提是源目录和目标目录不遍历通向另一个文件系统的符号链接(symbolic link)!)

当你跨文件系统 mv 一个文件时,它与 cp + rm 的效果相同:没有速度增益(除了你只运行一个命令,并且一致性得到保证:你不必检查是否cp成功执行rm)

(旧版本的 mv 拒绝跨文件系统移动目录,因为它们只进行了重命名)

注意,这不是等价的。 cp 默认覆盖目标,而 mv 无法将文件/目录重命名为现有文件/目录。

关于cp - 为什么复制比移动慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39226308/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com