为什么每次保存文件时vim都会创建一个新文件?

时间:2014-09-29 06:04:25

标签: linux vim

我有一个名为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

1 个答案:

答案 0 :(得分:8)

它试图保护您免受磁盘和操作系统问题的影响。它写出了该文件的完整副本,当它满足时,它已正确完成,将该文件重命名为所需的文件名。因此,新的inode号。

如果在保存过程中发生崩溃,原始文件将保持不变,可能会使您完全丢失文件。