Emacsのバックアップファイル作成には2つの方法があります:
デフォルトの方法は1つ目のリネームです。
変数backup-by-copying
が非nil
なら、それは2つ目の方法、つまり元のファイルをコピーして新たなバッファー内容で上書きすることを意味します。変数file-precious-flag
が非nil
の場合にも、(メイン機能の副作用として)この効果があります。バッファーの保存を参照してください。
この変数が非nil
なら、Emacsは常にコピーによりバックアップファイルを作成する。デフォルトはnil
。
以下の3つの変数が非nil
の際は、ある特定のケースに2つ目の方法が使用されます。その特定のケースに該当しないファイルの処理には影響はありません。
この変数が非nil
なら、Emacsは複数名(ハードリンク)をもつファイルにたいしてコピーによりバックアップを作成する。デフォルトはnil
。
backup-by-copying
が非nil
なら常にコピーによりバックアップが作成されるので、この変数はbackup-by-copying
がnil
のときだけ意味がある。
この変数が非nil
(デフォルト)なら、リネームによりファイルの所有者やグループが変更されるケースではEmacsはコピーによりバックアップを作成する。
リネームによりファイルの所有者やグループが変更されなければ、値に効果はない。つまり、そのディレクトリーで新たに作成されるファイルにたいするデフォルトのグループに属するユーザーにより所有されるファイルが該当する。
backup-by-copying
が非nil
なら常にコピーによりバックアップが作成されるので、この変数はbackup-by-copying
がnil
のときだけ意味がある。
この変数が非nil
なら、特定のユーザーIDおよびグループIDの値(具体的には特定の値以下のID数値)にたいしてのみ、backup-by-copying-when-mismatch
と同じように振る舞うことを指定する。変数にはその数値をセットする。
したがってファイル所有者の変更を防ぐ必要がある際には、backup-by-copying-when-privileged-mismatch
を0にセットすればスーパーユーザーとグループ0だけがコピーによるバックアップを行うことができる。
デフォルトは200。