Diciamo che ho due file file1e file2:
$ echo aaa >file1
$ ln file1 file2
Quindi controllo che gli inode siano gli stessi:
$ ls -i
18749779 file1 18749779 file2
il che dimostra che i due file sono effettivamente gli stessi. Ora modifico file1in Emacs e aggiungo una riga con ad esempio il testo bbb, lo salvo e esco da Emacs.
Ora ottengo:
$ ls -i
18749781 file1 18749779 file2
$ cat file1
aaa
bbb
$ cat file2
aaa
Quindi il collegamento reale è interrotto. Nota che questo non accade quando modifico il file vimo se lo faccio semplicemente echo bbb >>file1..
Come posso evitare che Emacs interrompa i collegamenti reali?
Aggiornare:
Si noti che ho
(require 'backup-dir)
(setq bkup-backup-directory-info
'((t "~/.emacs-backups/" ok-create full-path )))
nel mio ~/.emacsfile init. Se modifico file1usando emacs -Q file1invece, ottengo un file chiamato file1~nella directory corrente che collega file2(ha lo stesso inode) ma file1~non è stato modificato (quindi è identico al vecchio file1) .. Questo non è quello che desidero. Mi piacciono entrambi file1e file2di essere lo stesso file, e di includere il contenuto del file aggiornati ..
(setq backup-by-copying t)al mio~/.emacsfile init funziona come desiderato ..