emacsはデフォルトでどのようにファイルを保存しますか?


2

通常、アプリケーションは、古いファイルの名前を変更して新しいファイルを所定の場所に書き込むか、一時ファイルを書き込んで古いファイルを新しい一時ファイルに置き換えることにより、アトミック保存を実行します。emacsはこれらのどれをしますか?パッチディスカッションへのこのリンクを見つけましたが、何が起こっているのかわかりません。

回答:


2

答えは、あらゆる種類の要因に依存するということです。

まず、「古いファイルの名前を変更して新しいファイルを所定の場所に書き込む」ことはアトミックではないことに注意してください。

Emacsはさまざまな方法で保存できます。

  • 古いファイルの名前を変更し、その場で書き込みます(非アトミック、リンクが壊れます)。
  • 名前を変更せず、既存のファイルに上書きします(非アトミック、リンクを壊しません)。
  • 新しいファイルに書き込み、名前を変更します(アトミック、リンクを解除します)。

「リンク切れ」は、新しいファイルが異なる許可/所有者/ ...を持っていることを意味することに注意してください

ほとんどの場合、Emacsは2番目のアプローチを使用します(リンクと許可を保持するため)。ただし、ファイルのバックアップを作成する必要がある場合(に従ってmake-backup-files)、多くの場合、最初のアプローチ(名前の変更を使用してバックアップを作成する)を使用しますが、これはbackup-by-copying(およびbackup-by-copying-when-)などfile-precious-flagbreak-hardlink-on-save


良い質問、良い答え。EmacsマニュアルのノードバックアップとElispマニュアルのノードバックアップの作成も参照してください。
ドリュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.