Diciamo che ho due file file1
e 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 file1
in 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 vim
o 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 ~/.emacs
file init. Se modifico file1
usando emacs -Q file1
invece, 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 file1
e file2
di essere lo stesso file, e di includere il contenuto del file aggiornati ..
(setq backup-by-copying t)
al mio~/.emacs
file init funziona come desiderato ..