use shutil.move instead of os.rename to move file

This prevents a "OSError: [Errno 18] Invalid cross-device link" if the temporary
file was created on different filesystem (such as a tmpfs mount).
This commit is contained in:
Daniël van de Giessen
2025-05-13 13:12:42 +02:00
parent 8ed63b27be
commit ba250a3075

View File

@@ -73,7 +73,7 @@ def changefile(from_prefix, to_prefix, from_path, to_path, *,
shutil.copystat(from_path, to_path)
if to_path_temp:
os.rename(to_path, from_path)
shutil.move(to_path, from_path)
elif from_path != '-':
os.remove(from_path)