假设一个进程执行此操作:将大文件mv到目标目录
而另一个进程是在目标目录中查看该文件,因为它想尽快读取它的内容。 文件系统是否确保第二个进程在文件完全可用时才“看到”文件?
我看了mv的手册页,但没有看到任何保证…
这在很大程度上取决于源文件和目标文件是否在同一个文件系统上(在这种情况下, rename(2)完成,†大约是primefaces一样)或不同的文件系统一个进程可能很容易看到一个不完整的文件,特别是如果系统或networking或文件系统速度慢)。
†基于我在Linux上做了多年的mv ,所以YMMV有不同的mv实现。