mceditがファイルを保存するときにハードリンクの削除を推奨するのはなぜですか?

mceditがファイルを保存するときにハードリンクの削除を推奨するのはなぜですか?

どこかにハードリンクされたファイルを編集して保存しようとするたびに、編集者mceditはハードリンクを削除するかどうかを尋ねます。これはLinuxの一般的な動作ですか、それともmcedit「特別な」動作ですか? fsckや他の管理ツールではなく、一般的なアプリケーションがハードリンクに興味を持っているのはなぜですか?

ベストアンサー1

ファイルを変更したい場合は、2つのオプションがあり、各オプションには長所と短所があります。

  • その場所にファイルを上書きできます。これは余分なスペースを使用せず、既存のファイルコンテンツ以外のハードリンク、権限、およびその他の属性を保持します。この方法の主な欠点は、ファイルが記録されている間に何かが起こると(アプリケーションがクラッシュしたり、停電が発生した場合)、ファイルが部分的に記録されることです。
  • ファイルの新しいバージョンを別の名前の新しいファイルに書き込み、その場所に移動できます。これは、より多くのスペースを使用し、ハードリンクを壊し、ファイルへの書き込み権限があるがファイルに含まれているディレクトリがない場合、これを行うことはできません。一方、以前のバージョンのファイルは自動的に新しいバージョンに置き換えられ、すべての時点でファイル名はファイルの有効で完全なバージョンを指します。

Mceditはどの戦略を選ぶかを尋ねています。ただし、奇妙なことに、単一のディレクトリエントリを持つファイルに対するmceditのデフォルトポリシーは、既存のファイルを切り取り、データを危険にさらすことです。セキュリティポリシーによってハードリンクが中断された場合にのみ使用できます。 [オプション]メニューの[保存モードの編集]ダイアログボックスでこの設定を変更できます。 「クイック保存」は上書きを意味し、「安全に保存」とは一時ファイルに保存してから名前を変更することを意味します。セーフモードを選択した場合、シンボリックリンクを切断しないオプションはありません。

(mc 4.8.3で観察されたものです。これがまだ最新バージョンに存在する場合は、デザインバグとして報告することを検討してください。「セーフモード」がデフォルトでなければならず、そのモードで実行するオプションが必要です。リンクケースを破損しないでください。)

VimやEmacsなどの良いエディタを使用すると、基本的な戦略を選択できます。

おすすめ記事