のは、私は2つのファイルを持っていると言うfile1
とfile2
:
$ echo aaa >file1
$ ln file1 file2
次に、iノードが同じであることを確認します。
$ ls -i
18749779 file1 18749779 file2
これは、2つのファイルが実際には同じであることを示しています。次にfile1
、Emacsで編集し、たとえばテキストを含む行を追加して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
initファイルで。代わりにをfile1
使用して編集するemacs -Q file1
とfile1~
、現在のディレクトリにリンクされているfile2
(同じiノードを持つ)ファイルが取得されますが、file1~
変更されていません(そのため、古いと同じですfile1
)。これは私が望んでいることではありません。両方file1
をfile2
同じファイルにして、更新されたファイルの内容を含めたいです。
(setq backup-by-copying t)
と、~/.emacs
期待どおりに機能します。