Linux檔案儲存體之inode、永久連結、軟連結方法,檔案儲存體inode

來源:互聯網
上載者:User

Linux檔案儲存體之inode、永久連結、軟連結方法,檔案儲存體inode
檔案儲存體

檔案儲存體在硬碟上,扇區(sector)是磁碟中最小的實體儲存體單位,通常情況下每個扇區的大小是512位元組,但為了提高效率,作業系統在讀取硬碟的時候往往是一次讀取多個扇區(多個扇區組成塊),所以(block)是檔案存取的最小單位;最常見的塊的大小為4KB;

由於檔案儲存體在塊中,所以我們需要一些特殊的東西(inode)來索引這些塊,同時也包含了檔案的一些元資訊,比如建立者、建立日期、建立時間等,這些特殊的東西稱之為”索引節點”(inode);可以通過命令:stat 檔案名稱 來查看一個檔案的inode資訊;

其中Inode:1036334是該檔案對應的inode的號碼;其它資訊在下文說明;

因為inode也要被儲存也要消耗磁碟空間,所以在磁碟被格式化的時候,作業系統將其分為兩個部分,一部分用於儲存inode,一部分用於儲存真正的資料;由於inode在格式化磁碟的時候就被設定,且數量有限,所以有可能出現inode被用完,磁碟仍有空間卻不能建立檔案的情況;可以通過命令:df -i 查看每個硬碟分區的inode總數和已經使用的數量;

其實作業系統查看一個檔案並不是通過檔案名稱來開啟的,而是通過inode索引到對應的塊來找到目標檔案,那作業系統是如何找到這些inode的呢?每個inode都有一個對應的ID號。我們開啟一個檔案,在系統內部實際上分為三個步驟:(1)系統找到這個檔案名稱對應的inode號碼;(2)通過inode號碼找到對應的inode,擷取inode資訊,判斷許可權等;(3)通過inode索引到對應的塊,讀資料;可以通過命令:ls -i 檔案名稱 來查看一個檔案對應的inode號碼;

永久連結、軟連結、inode、block的關係如下所示(軟、永久連結在下文說明):

永久連結和軟連結

通常檔案名稱和inode號碼是一一對應的,但是Linux系統允許多個檔案名稱指向同一個inode號碼;比如我們建立檔案file1,通過永久連結的方式建立file2,分別查看這兩個檔案的inode號碼,會發現他們是一樣的;那什麼是永久連結?與之對應的軟連結又是什嗎?

永久連結:

可以通過不同的檔案名稱訪問同樣的內容(或是說同一個inode),對檔案內容做修改,會在所有的檔案名稱中體現出來(這更像是php中的引用傳值),但是刪除某一個檔案名稱,並不會對其它的檔案名稱產生影響,檔案內容也不會被刪除,只有當所有的檔案名稱都被刪除時,檔案內容才會被刪除,這種情況就叫做永久連結,即多個檔案名稱索引同一個inode號碼,通過 stat 檔案名稱 可以查看某個檔案對應的inode被多少個檔案名稱連結,舉例如下:

Links:2說明有兩個檔案名稱連結至該inode(1036334),這是因為我建立了檔案file1,同時建立了該檔案的一個永久連結file2(下文有具體的操作);

建立永久連結舉例如下:

建立檔案file1:touch file1

建立永久連結file2:ln file1 file2

查看檔案資訊:ls -li

發現兩個檔案名稱對應的inode號碼均為:1036334,連結到該inode的連結個數為2(-rw-rw-r–許可權後的數字表示指向該inode號碼的連結數)

刪除file1:sudo rm file1

查看檔案資訊:ls -li

檔案仍存在,且inode號碼也未改變,連結到該inode的連結個數變為1;

軟連結:

軟連結(如下文file3)其實更像windows系統下的案頭捷徑,它本身也是一個檔案(有新的inode號碼),只是它儲存的不是檔案內容(file1),而是軟連結指向的檔案名稱的地址(file1的地址),如果刪除file3,對檔案內容不產生影響,刪除file1,會使file3失效;

建立軟連結file3:ln -s file1 file3

查看檔案:ls -li

連結到1036334inode的連結數仍然為2,說明file3並未連結到1036334

刪除file3:sudo rm file3

查看檔案:ls -li

並未對file1產生影響;

刪除file1:sudo rm file1

查看檔案:ls -li

發現file3已變紅失效;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.