Скажімо, у мене є два файли file1та file2:
$ echo aaa >file1
$ ln file1 file2
Потім я перевіряю, чи є вставки однакові:
$ ls -i
18749779 file1 18749779 file2
що показує, що два файли насправді однакові. Тепер я редагую 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(має такий самий inode), але file1~він не був змінений (тож він ідентичний старому file1). Це не те, чого я бажаю. Я хотів би, щоб file1і file2той самий файл був, і включав оновлений вміст файлу ..
(setq backup-by-copying t)до свого~/.emacsфайлу init, він працює за бажанням ..