![ファイルを移動しても、その inode 番号に影響しないのはなぜですか?](https://rvso.com/image/1157140/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%A7%BB%E5%8B%95%E3%81%97%E3%81%A6%E3%82%82%E3%80%81%E3%81%9D%E3%81%AE%20inode%20%E7%95%AA%E5%8F%B7%E3%81%AB%E5%BD%B1%E9%9F%BF%E3%81%97%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
移動とは、実際には新しい場所にファイルのコピーを作成し、その後、以前の場所からファイルを削除することです。 2 つの同一の inode 番号を同時に持つことは不可能なので、コピー後、古いファイルを削除する前 (短時間) に inode 番号が変更されるはずです。 しかし、mv
コマンド後に inode 番号が変更されないことを発見しました。 では、削除されたファイルの inode 番号は、コピーされたファイルに再割り当てされるのでしょうか?
答え1
移動とは、実際には新しい場所にファイルのコピーを作成し、以前の場所からファイルを削除することです。
それは必ずしも真実ではありません。
目的地が同じファイルシステム上ファイルはコピーされません。パスのみが変更され、これはディレクトリの一部であり、inode には保存されません。
目的地が別のファイルシステム上ファイルがコピーされます。
これについては Stack Overflow でも取り上げられています:Linux の mv は内部的にどのように動作するのでしょうか?