8

我正在阅读 linux 中的“SCP”命令手册页,最后它说

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

隐约我能猜到它是什么,但谁能清楚地告诉我这句话的技术定义。

谢谢,稻谷

4

2 回答 2

7

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

这当然假设您正在 scp'ing 到 UNIX 系统:)

于 2014-07-10T09:13:55.133 回答
5

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

于 2013-04-06T15:12:46.820 回答