您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關linux下分區內部mv和跨分區mv的區別有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
為什么不同,為什么一個快一個慢?
為什么跨區域mv失敗時,不影響原來的文件?
這樣的釋疑過程也是自己對文件系統(filesystem)理解的加深過程。
文件系統中文件是如何保存的?
文件在文件系統中保存時(以linux下的ext2文件系統為例),是通過inode+block組織的。inode對應文件的元數據,block對應真實的數據;
inode對block的管理不能跨分區,因為inode保存的block信息是按照分區中的block序號進行的,脫離對應的分區將沒有意義;
linux VFS中文件樹是通過inode組件起來的。
分區內部mv的過程:mv a b 因為是在內部移動,所以只是修改了inode的父節點inode。
將inode a的父節點指向b位置,將inode a對應的文件名,修改為b。
對應的是一個rename的系統調用。
跨分區mv過程:
分配inode b;
將a中的block copy到b所在分區中,將對應的block歸到inode b之下;
將inode a刪除。
通過以上過程回答2個問題。
為什么同分區快?因為不涉及底層數據block的拷貝或者移動,數據block都在一個分區內。
跨分區mv失敗時,為什么不影響原來的文件?因為跨分區也是block的copy過程,不是move,在第3步刪除inode a之前,a對應的數據都是完整的。
感謝各位的閱讀!關于“linux下分區內部mv和跨分區mv的區別有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。