假设我有两个文件file1
和file2
:
$ echo aaa >file1
$ ln file1 file2
然后检查inode是否相同:
$ ls -i
18749779 file1 18749779 file2
这表明两个文件实际上是相同的。现在,我file1
在Emacs中进行编辑,并添加一行带有例如text的文本bbb
,然后保存并退出Emacs。
现在我得到:
$ ls -i
18749781 file1 18749779 file2
$ cat file1
aaa
bbb
$ cat file2
aaa
因此,硬链接断开了。请注意,当我在中编辑文件vim
或仅执行echo bbb >>file1
.. 时,不会发生这种情况。
如何防止Emacs断开硬链接?
更新:
注意我有
(require 'backup-dir)
(setq bkup-backup-directory-info
'((t "~/.emacs-backups/" ok-create full-path )))
在我的~/.emacs
初始化文件中。如果我编辑file1
使用emacs -Q file1
,而不是,我得到一个名为file1~
在当前目录中的链接file2
(具有相同的inode),但file1~
并没有被修改(因此它等同于旧的file1
)。这不是我的愿望。我想这两个file1
和file2
是相同的文件,包括更新的文件内容..
(setq backup-by-copying t)
到我的~/.emacs
初始化文件,并根据需要工程..