一. 概念
1. inode(index node)表中包含文件系統所有文件列表
一個節點 (索引節點)是在一個表項,包含有關文件的信息( 元數據 ),包括:
-
文件類型,權限,UID,GID
-
鏈接數(指向這個文件名路徑名稱個數)
-
該文件的大小和不同的時間戳
-
指向磁盤上文件的數據塊指針
-
有關文件的其他數據
-
inode 索引節點編號
2. inode 表結構
3. inode號
系統中將目錄下的文件名和文件inode號之間的映射作為目錄的數據存放;人們通過文件名進行操作時,系統會通過對應路徑目錄的inode號找到目錄的inode表數據,進而通過數據指針指向目錄的數據,匹配文件名,得到文件的inode號;再到inode表中找到此文件的表項,再由文件數據指針指向真正的文件數據。
i. 系統中同一分區的索引節點編號是唯一的,即在一個分區中,索引編號相同的文件指向的數據是同一個;(硬鏈接)
ii. 系統中每個分區的索引節點划分是獨立的,不同分區的索引節點編號可能相同,但不是同一個文件;
iii. 分區中的索引節點編號是有限的;當分區中索引節點編號用完后,新建文件夾會提示系統內存不足,導致新建失敗;但系統中仍有剩余磁盤空間,原因是索引節點編號不足,無法為文件分配節點編號,因而新建失敗。
ls -i 查看文件節點編號 df -i 查看分區節點編號使用情況 echo file{1..500000} |xargs touch 批量新建大量文件;參數過多,touch無法直接創建 echo file{1..500000} |xargs rm 批量刪除大量文件;參數過多,rm無法直接刪除
4. 文件操作與inode的關系
二 . 軟連接與硬鏈接
1. 硬鏈接
創建方式: ln filename filename2
2. 軟連接
1. 創建方式: ln -s file_path file_link file_path :原文件絕對路徑或原文件相對與 file_link 的相對路徑, 推薦使用相對路徑,可移植性強 2. readlink file_link 讀取軟連接原始文件路徑 3. 軟連接指向新文件 rm -f file_link 刪除原軟連接 ln -s newfile_path file_link 創建新軟連接