Angenommen, ich habe zwei Dateien file1und file2:
$ echo aaa >file1
$ ln file1 file2
Dann überprüfe ich, ob die Inodes gleich sind:
$ ls -i
18749779 file1 18749779 file2
Dies zeigt, dass die beiden Dateien tatsächlich gleich sind. Jetzt bearbeite ich file1in Emacs und füge eine Zeile mit beispielsweise dem Text hinzu bbb, speichere sie und beende Emacs.
Jetzt bekomme ich:
$ ls -i
18749781 file1 18749779 file2
$ cat file1
aaa
bbb
$ cat file2
aaa
Die harte Verbindung ist also unterbrochen. Beachten Sie, dass dies nicht passiert, wenn ich die Datei bearbeite vimoder wenn ich es einfach tue echo bbb >>file1.
Wie kann ich verhindern, dass Emacs harte Links unterbricht?
Aktualisieren:
Beachten Sie, dass ich habe
(require 'backup-dir)
(setq bkup-backup-directory-info
'((t "~/.emacs-backups/" ok-create full-path )))
in meiner ~/.emacsInit-Datei. Wenn ich bearbeiten file1Verwendung emacs -Q file1stattdessen ich eine Datei mit dem Namen bekommen file1~im aktuellen Verzeichnis , dass Links zu file2(die gleiche Inode hat) , aber das file1~hat sich nicht geändert (so ist es identisch mit dem alten file1) .. Dies ist nicht das, was ich will. Ich würde beide mögen file1und file2die gleiche Datei zu sein, und die aktualisierten Dateiinhalte aufzunehmen ..
(setq backup-by-copying t)zu meiner~/.emacsInit-Datei hinzufüge , funktioniert es wie gewünscht.