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

Sha*_* Xu 5 linux vim

我有一个名为的文件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)

Max*_*Max 8

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

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

  • 是的,这种行为可以通过`'backupcopy'选项来影响. (2认同)