使用临时文件进行“近原子”传输的含义?

时间:2013-02-26 11:28:33

标签: scp temporary-files

我在linux上阅读'SCP'命令手册页,最后它说了

  

“没有尝试使用临时文件进行”近原子“传输”。

含糊不清我可以猜到它是什么,但任何人都可以清楚地告诉我这句话的技术定义。

谢谢, 稻谷

2 个答案:

答案 0 :(得分:6)

原子复制将像Craig所述,使用临时文件然后将临时文件mv到预期目的地。 mv是一个原子提供源和目标位于同一个分区上。只有打开tmp文件的文件操作才能读取内容。对于在分区之间移动的文件,rename()不是原子的,因为必须复制数据。

这假设您当然是在访问UNIX系统:)

答案 1 :(得分:4)

Atomic意味着在scp完成之前,没有其他任何东西可以读取或写入文件。 “近原子”是指将文件复制到临时位置(在目标机器/磁盘上)然后移动到最终位置的常见做法。移动操作比复制快得多(通过比较“近原子”),但它不一定是真正意义上的原子。在非原子移动期间,另一个进程仍然可以读取处于不一致状态的文件。