Giả sử tôi có hai tệp file1và file2:
$ echo aaa >file1
$ ln file1 file2
Sau đó, tôi kiểm tra xem các nút có giống nhau không:
$ ls -i
18749779 file1 18749779 file2
cho thấy hai tập tin thực sự giống nhau. Bây giờ tôi chỉnh sửa file1trong Emacs, và thêm một dòng với ví dụ văn bản bbb, lưu nó và thoát Emacs.
Bây giờ tôi nhận được:
$ ls -i
18749781 file1 18749779 file2
$ cat file1
aaa
bbb
$ cat file2
aaa
Vì vậy, liên kết cứng bị hỏng. Lưu ý rằng điều này không xảy ra khi tôi chỉnh sửa tệp vimhoặc nếu tôi chỉ đơn giản làm echo bbb >>file1..
Làm thế nào tôi có thể ngăn Emacs phá vỡ các liên kết cứng?
Cập nhật:
Lưu ý rằng tôi có
(require 'backup-dir)
(setq bkup-backup-directory-info
'((t "~/.emacs-backups/" ok-create full-path )))
trong ~/.emacstập tin init của tôi . Nếu tôi chỉnh sửa file1bằng cách sử dụng emacs -Q file1thay vào đó, tôi nhận được một tệp được gọi file1~trong thư mục hiện tại có liên kết đến file2(có cùng một nút) nhưng file1~chưa được sửa đổi (vì vậy nó giống hệt với bản cũ file1) .. Đây không phải là điều tôi mong muốn. Tôi muốn cả hai file1và file2cùng một tệp, và bao gồm các nội dung tệp được cập nhật ..
(setq backup-by-copying t)vào~/.emacstệp init của mình thì nó hoạt động như mong muốn ..