a と b の 2 つのディレクトリ エントリがあります。以前は、a と b は異なる inode を指していました。その後、b が a と同じ inode を指すようにします。私はこれが安全であることを望んでいます - つまり、どこかで失敗した場合、b は元の i ノードまたは a i ノードを指します。特に、b が消えてしまいたくないのです。
mv は上書き時にアトミックです。
宛先が既に存在する場合、ln は機能しないように見えます。
だから私は言うことができるように見えます:
ln a tmp mv tmp b
障害が発生した場合、「tmp」ファイルが残ります。これは望ましくありませんが、災害ではありません。
これを行うより良い方法はありますか?
(私が実際にやろうとしているのは、同じコンテンツを持つファイルを、そのコンテンツを含む単一の i ノードに置き換え、すべてのディレクトリ エントリ間で共有することです)