当应用程序保存文件时,典型的模型是将文件保存到临时位置,然后将临时文件移动到最终位置。在某些情况下,“移动”变成了“替换”。在伪代码中:
Save temp file;
if final file exists
delete final file;
move temp file to final filename;
那里有一个窗口,删除可能会成功,但移动可能不会成功,因此您可以通过以下方式处理:
Save temp file;
if final file exists
move final file to parking lot
move temp file to final filename;
if move succeeded
delete previous final file.
else
restore previous final file.
现在我的问题:
将临时文件保存到临时目录,然后移动它,而不是将临时文件保存到最终目录?(如果是,为什么?)
与保存到最终目录中的临时文件的文件相比,首先保存到临时目录,然后移动到不同目录中的最终文件的文件的属性和权限是否存在差异,然后在目录中重命名?
如果两者的答案都是“是”,那么我如何在获得适当的 ACL 文件的同时做首选的事情,该文件首先保存到临时目录然后移动到最终目录?