Является ли python shutil.move() атомом на linux?
Мне интересно, является ли python shutil.move атомарным в linux? Является ли поведение отличным, если исходный и целевой файлы находятся на двух разных разделах или это то же самое, что и при наличии в одном разделе?
Мне больше интересно узнать, является ли shutil.move атомарным, если исходный и целевой файлы находятся в одном разделе!
Ответы
Ответ 1
Он не является атомарным, если файлы находятся на разных файловых системах. В этом случае python открывает исходный и целевой файлы, циклы считываются из источника и записываются в режим отказа и, наконец, отключают исходный файл.
Если исходный и целевой файл находятся в одной и той же файловой системе, python использует вызов rename() C, который является атомарным.