Giả sử tôi có hai tệp file1
và 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 file1
trong 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 vim
hoặ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 ~/.emacs
tập tin init của tôi . Nếu tôi chỉnh sửa file1
bằng cách sử dụng emacs -Q file1
thay 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 file1
và file2
cù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~/.emacs
tệp init của mình thì nó hoạt động như mong muốn ..