![為什麼移動檔案不會影響其索引節點號?](https://rvso.com/image/1157140/%E7%82%BA%E4%BB%80%E9%BA%BC%E7%A7%BB%E5%8B%95%E6%AA%94%E6%A1%88%E4%B8%8D%E6%9C%83%E5%BD%B1%E9%9F%BF%E5%85%B6%E7%B4%A2%E5%BC%95%E7%AF%80%E9%BB%9E%E8%99%9F%EF%BC%9F.png)
移動實際上是在新位置建立文件的副本,然後從以前的位置刪除該文件。由於不可能同時有兩個相同的 inode 號,因此 inode 號應該在複製之後和刪除舊檔案之前(短時間內)發生變化。但是,我發現命令後索引節點號沒有改變mv
。那麼,被刪除的檔案的inode號是否被重新指派給複製的檔案呢?
答案1
移動實際上是在新位置建立文件的副本,然後從以前的位置刪除該文件。
這不一定是真的。
如果目的地是在同一個檔案系統上,文件不會被複製。僅更改其路徑,該路徑是目錄的一部分,不儲存在 inode 中。
如果目的地是在不同的檔案系統上,然後文件被複製。
Stack Overflow 上也對此進行了介紹:Linux 的 mv 內部是如何運作的?