Mac OS X上のエディタでテキストファイルを保存すると、
文字コードを保存するための拡張属性が付きます。
$ ls -l@i aaa.txt
13960281 -rw-r--r--@ 1 hat hat 9 Dec 10 21:14 aaa.txt
com.apple.TextEncoding 14
このファイルを
emacsで編集してやると、
abc.txt~
というバックアップファイルができるわけですが、
$ ls -l@i aaa.txt*
13960284 -rw-r--r-- 1 hat hat 12 Dec 10 21:15 aaa.txt
13960281 -rw-r--r--@ 1 hat hat 9 Dec 10 21:14 aaa.txt~
com.apple.TextEncoding 14
拡張属性がバックアップファイルの方に移動してしまいます。
なぜかというと、
emacsはファイルをリネームしてバックアップファイルとし、新たに元のファイル名を作るからです。この挙動は編集前後のinode番号を見ればわかります。
で、対策方法ですが、
.emacs.el
で
(setq backup-by-copying t)
としてやると、リネームではなくコピーでバックアップファイルを作るようになるので、拡張属性が移動しません。バックアップファイルの方は拡張属性が付きませんが、まあ、しょうがないか。