我有一个名为的文件test
:
[test@mypc ~]$ ls -i
4982967 test
Run Code Online (Sandbox Code Playgroud)
然后我使用vim更改其内容并输入:w
以保存它.
它现在有一个不同的inode:
[test@mypc ~]$ ls -i
4982968 test
Run Code Online (Sandbox Code Playgroud)
这意味着它已经是一个不同的文件了,为什么vim将它保存到另一个文件中,因为我:w
用来保存到原始文件?
你看,echo到一个文件不会改变inode,这是预期的:
[test@mypc ~]$ echo v >> test
[test@mypc ~]$ ls -i
4982968 test
Run Code Online (Sandbox Code Playgroud)
它试图保护您免受磁盘和操作系统问题的影响.它写出了该文件的完整副本,当它满足时,它已正确完成,将该文件重命名为所需的文件名.因此,新的inode号码.
如果在保存过程中发生崩溃,原始文件将保持不变,可能会使您完全丢失文件.