Скажімо, у мене є два файли 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, він працює за бажанням ..