2014-09-29 113 views
4

我有一个名为test文件:为什么vim每次保存文件时都会创建一个新文件?

[[email protected] ~]$ ls -i 

4982967 test 

然后我使用vim改变其内容,然后输入:w保存。

现在有不同的inode:

[[email protected] ~]$ ls -i 

4982968 test 

这意味着它是一个不同的文件已经,为什么会Vim,它保存到另一个文件,因为我用:w保存到原来的?

你看,回声到一个文件中不会改变的inode,预计:

[[email protected] ~]$ echo v >> test 

[[email protected] ~]$ ls -i 

4982968 test 

回答

8

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

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

+2

对,这种行为可以通过''backupcopy''选项来影响。 – 2014-09-29 06:32:26

相关问题