Laz*_*zer 14 unix
mv a b
cp a b;rm a
cp a b
rm a
这是两组陈述。他们所做的事情有什么不同吗?
小智 20
假设涉及的文件在同一个文件系统上,那么 mv 只是简单地改变文件系统中的指针,而 cp 复制文件的全部内容,而 rm 再次改变指针。所以 mv 效率更高。
unw*_*ind 9
是的, mv 有可能在同一个磁盘上是原子的,而 cp 和 rm 的组合从来没有。
这是假设 mv 是使用 实现的rename(),这是有保证的调用。例如,请参阅这个引用 POSIX 的新闻组帖子:
rename()
对于常规文件,此 rename() 函数等效于 ISO C 标准定义的函数。它在此处的包含扩展了该定义以包括对目录的操作并指定当新参数命名已存在的文件时的行为。该规范要求函数的动作是原子的。
mpe*_*ez0 8
在同一个文件系统上, mv 改变目录引用,指向同一个 inode(文件数据和元数据),因此:
复制并删除
归档时间:
16 年 前
查看次数:
24389 次
最近记录:
13 年,3 月 前