わかりました、これで頭を叩きました。 OS Xでは、ハードリンクを作成するために、ターミナルウィンドウで、これを入力するだけでよいはずです...
ln a.txt b.txt
...これにより、a.txt
からb.txt
へのハードリンクが作成されます。シンプルでわかりやすい。
そのステートメントを実行すると、確かに、Finderではb.txt
がa.txt
のすぐ横に表示されます。ただし、テキストエディットを使用してa.txt
を編集した後でも、b.txt
には元のデータが残っています。言い換えれば、ハードまたはその他の方法で、リンクではなくコピーを実行したように見えます。
私にはまったく意味がありません!だから誰かが私がここで間違っていることを教えてもらえますか?
この動作の理由はかなり単純であり、ほとんどのMac OSXアプリケーションでファイルがどのように保存されるかに関係しています。
ファイルのコピーが一時ステージング領域に書き込まれ、元のファイルを置き換えるために移動されます。
これは、当然のことながら、ハードリンクを切断します。
が表示された場合は、 スーパーユーザーからのこのエントリ を参照してください。これはテキストエディットの機能です。したがって、ハードリンクを作成する通常の方法は正しいですが、テキストエディットはこれを破るような方法で動作します。 (リンクには、新しいファイルを作成し、編集後に古いファイルの上に移動することが示されています。)
Emacsもデフォルトで(すべてのUNIXで)この(驚くべき!)動作を示すことに注意してください。原因はわずかに異なります(ディスク容量が非常に少ない状況で行うのは「安全」なことです)。ただし、いくつかの方法で構成できます。
make-backup-files
(C-h v make-backup-files
を使用)およびについては、ドキュメントを参照してください。
backup-by-coping
backup-by-coping-when-linked
backup-by-coping-when-mismatch
backup-by-coping-when-privileged-mismatch