為什麼移動檔案不會影響其索引節點號?

為什麼移動檔案不會影響其索引節點號?

移動實際上是在新位置建立文件的副本,然後從以前的位置刪除該文件。由於不可能同時有兩個相同的 inode 號,因此 inode 號應該在複製之後和刪除舊檔案之前(短時間內)發生變化。但是,我發現命令後索引節點號沒有改變mv。那麼,被刪除的檔案的inode號是否被重新指派給複製的檔案呢?

答案1

移動實際上是在新位置建立文件的副本,然後從以前的位置刪除該文件。

這不一定是真的。

如果目的地是在同一個檔案系統上,文件不會被複製。僅更改其路徑,該路徑是目錄的一部分,不儲存在 inode 中。

如果目的地是在不同的檔案系統上,然後文件被複製。

Stack Overflow 上也對此進行了介紹:Linux 的 mv 內部是如何運作的?

相關內容