考虑以下操作顺序:
- 我指示一个程序打开一个文件,
- (我在程序中修改了文件,并保存到文件中。)
- 我
mv
把文件放在别处。比如文件本来是dir1/dir2/dir3/all.pdf
,然后我跑了mv dir1/dir2/dir3 dir1/; rmdir dir1/dir2
.现在文件是dir1/dir3/all.pdf
. - 我修改程序中的文件
- 我指示程序通过“另存为...”将修改后的内容保存到文件的新位置。
文件移动的“另存为...”成功还是失败取决于程序?例如,
- 当程序为 PDFXCView 在 wine 3.0 和 Ubuntu 18.04 下运行时,当“另存为...”时,它使 pdf 文件消失并中止自己的进程。
- Linux 本机程序是否可以“另存为...”失败并丢失文件,或者“另存为...”失败并保持文件完整,或者“另存为...”成功?
当另一个程序移动文件时,程序需要做什么才能成功保存对文件的更改(保存到新位置或原始位置)?
操作系统或文件系统是否无法警告或阻止此类情况的发生?
在这种情况下,无论使用哪种程序、操作系统或文件系统,我们可以采取哪些措施来避免或减少数据丢失的可能性?
谢谢。
答案1
Linux 本机程序是否可以“另存为...”失败并丢失文件,或者“另存为...”失败并保持文件完整,或者“另存为...”成功?
在 GNU/Linux 中,如果一个文件被任何程序打开,它就会被加载到内存中。如果您移动甚至删除了磁盘中的文件,它仍然会在内存中。当你再次保存它时,它会再次从内存保存到磁盘。有些程序甚至会通知您有关删除的信息并提示您另存为或者忽略,例如kate
。其他操作系统或仿真软件的这种行为有所不同。
要获得有关 GNU/Linux 中如何工作的更多技术知识,请阅读这