我们目前正在做经典的planA。
我想知道哪个更好?
无论fileA和fileB生存,以50〜100〜大小。
假设在 Linux/mac 中的同一个 NFS 挂载中
假设这是两个文件都存在的覆盖
# planA - we do this way
mv /pathA/fileA /pathB/fileB
# planB
rm /pathB/fileB; mv /pathA/fileB /pathB/fileB
# planB1 - I think is the same as planB, but not sure
unlink /pathB/fileB; ln /pathA/fileA /pathB/fileB
Run Code Online (Sandbox Code Playgroud)
当涉及到文件 IO 时,昂贵的任务是移动数据。
如果它在一个文件系统中(它必须是这样ln才能工作),那么区别就没有实际意义了。
在每种情况下,所发生的只是一个目录条目被修改为指向不同的 inode。如果最好,那只会是微不足道的差异,因此您实际上是在比较“命令启动的速度”。
但有一个警告——最后一个命令将保留/pathA/fileA原位——它是一个硬链接,使两个目录条目指向相同的数据。
这可能会在未来让人们感到困惑,因为如果他们覆盖fileA,它会做一件事,如果他们编辑它,它会做其他事情。
所以只是在简单的方面犯错 - 坚持只使用mv. 总体而言,它不会产生太大差异,而这对于您实际要实现的目标是最清楚的。
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |