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