2014-09-29 115 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

相關問題