硬链接、软链接和inode
一.inode
? ? ??在Linux中,“一切皆文件”。?唯一標識文件的是inode而非文件名,文件名僅是為了方便人們的記憶和使用,系統或程序通過 inode 尋找正確的文件數據塊。
? ? ? 什么是數據塊呢?文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當于0.5KB)。操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。文件數據都儲存在"塊"中。
? ? ? 每一個文件都有對應的inode,里面包含了與該文件有關的一些信息,比如文件的創建者、文件的創建日期、文件的大小等等。
? ? ? 可以用stat命令,查看某個文件的inode信息:stat example.txt
二.硬鏈接與軟鏈接
? ? ? 使用命令 mv 移動并重命名文件不影響文件的用戶數據及 inode 號。
? ? ? 為解決文件的共享使用,Linux 系統引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節省存儲等好處。
1.硬鏈接
? ? ? 若一個 inode 對應多個文件名,則稱這些文件為硬鏈接。換言之,硬鏈接就是同一個文件使用了多個別名。硬鏈接可由命令 ln 創建。
? ? ? 由于硬鏈接是有著相同 inode 號僅文件名不同的文件,因此硬鏈接存在以下幾點特性:
- 文件有相同的 inode 及 data block;
- 只能對已存在的文件進行創建;
- 不能交叉文件系統進行硬鏈接的創建;
- 不能對目錄進行創建,只可對文件創建;
- 刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。
2.軟連接
? ? ? 軟鏈接與硬鏈接不同,若文件用戶數據塊中存放的內容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接有著自己的 inode 號以及用戶數據塊。因此軟鏈接的創建與使用沒有類似硬鏈接的諸多限制:
- 軟鏈接有自己的文件屬性及權限等;
- 可對不存在的文件或目錄創建軟鏈接;
- 軟鏈接可交叉文件系統;
- 軟鏈接可對文件或目錄創建;
- 創建軟鏈接時,鏈接計數 i_nlink 不會增加;
- 刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接)。
?
學習資料:
1.Linux inode學習
2.理解inode
3.理解Linux的硬鏈接與軟連接
?
?
轉載于:https://www.cnblogs.com/Rosanna/p/3598929.html
總結
以上是生活随笔為你收集整理的硬链接、软链接和inode的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集合的划分【转】
- 下一篇: 运用家居收纳储物空间 小空间变出大身材