我想知道python的shutil.move在linux上是原子吗?如果源文件和目标文件位于两个不同的分区上,或者与它们出现在同一分区上时相同,则行为会有所不同吗?是linux上的python's shutil.move()原子吗?
我更关心的是,如果源文件和目标文件在同一分区上,shutil.move是否是原子的!
我想知道python的shutil.move在linux上是原子吗?如果源文件和目标文件位于两个不同的分区上,或者与它们出现在同一分区上时相同,则行为会有所不同吗?是linux上的python's shutil.move()原子吗?
我更关心的是,如果源文件和目标文件在同一分区上,shutil.move是否是原子的!
如果文件位于不同的filsystems上,这不是原子。在这种情况下,python会打开源文件和目标文件,从源文件读取循环并写入目标文件并最终取消链接源文件。
如果源文件和目标文件在同一个文件系统上,python使用rename()C调用,这是原子的。
您是否阅读过来源?它在您的计算机上的Python库中可用。你在'shutil'模块中看到了什么? – 2010-09-15 10:08:54