linux的i節點號碼是什麼意思
在linux中,i節點號是指inode號,用來識別不同的檔案。 Linux內部使用inode號來識別文件,而非文件名,對於系統來說,文件名是inode號的別稱,是便於用戶識別文件的,文件名和inode號是一一對應的關係,每個inode號對應一個檔名。
本教學操作環境:linux7.3系統、Dell G3電腦。
一、linux中的i節點
在linux中,i節點指的是inode節點。
linux中,檔案查找不是透過檔案名稱來尋找的。實際上是透過i節點來實現檔案的查找定位的。我們可以形象的將i節點看做是一個指標fip。當檔案儲存到磁碟上去的時候,檔案一定會存放到一個磁碟位置上,可以這樣想像,既然檔案資料是存放在磁碟上的,如果我們知道這個檔案資料的位址,當我們想要讀寫檔案的時候,我們是不是直接用這個地址去找文件就可以了呢?
是的,linux下,i節點其實就是可以這麼認為,把i節點看成一個指向磁碟上該檔案儲存區的位址。只不過這個地址我們通常是沒辦法直接使用的,而是透過檔案名稱來間接使用的。事實上,i節點不僅包含了檔案資料儲存區的位址,還包含了許多訊息,例如資料大小,等等檔案資訊。但是i節點是不保存檔名的。檔案名稱是保存在一個目錄項目中。每一個目錄項中都包含了檔案名稱和i節點。
我們可以透過一個圖來看看目錄項,i節點,檔案資料四者之間的關係。
從上圖可以看到,目錄項目包含了檔案名稱和i節點。
同時,你會發現上圖中,目錄項目A和目錄項目B的i節點指向同一個儲存區,其中這個儲存區存放的是printf("ha")的資料。
也就是表示helloA.c和helloB.c的內容是一樣的。
i節點號碼
每個inode都有一個號碼(即 inode號),作業系統用 inode號碼來辨識不同的檔案。
————Linux內部使用inode號來識別文件,而非文件名,對於系統來說,文件名是inode號的別名,是便於用戶識別文件的,文件名和inode號是一一對應的關係,每個inode號對應一個檔名。
inode號是系統辨識的唯一編碼,而檔案名稱只是為了使用者區分辨認,inode (index node )表中包含檔案系統所有檔案清單一個節點(索引節點)是在一個表格項,包含有關文件的資訊(元資料)。
硬碟分割區後的結構:
#當使用者在Linux系統中試圖存取一個檔案時,系統會先根據文件名去查找它對應的inode號碼;透過inode號碼,獲取inode信息;根據inode信息,看該用戶是否具有訪問這個文件的權限;如果有,就指向相對應的數據block,並讀取數據;如果沒有就會返回。
存取檔案的簡單流程:
#二、Linux 檔案儲存
- inode也會消耗硬碟空間,所以格式化的時候,作業系統會自動將硬碟分成兩個區域:一個是資料區,存放檔案資料;另一個是inode區,存放inode 所包含的資訊。每個inode 的大小,一般是128 位元組或256位元組。
通常不需要關注單一inode的大小,而是需要專注於inode總數,inode的總數在格式化時就已經定好了
——為什麼需要重點關注inode總數,因為當inode用完時,即便磁碟還有空間也無法建立新檔案了,因為在建立檔案時需要一個inode號與之對應,而沒有inode時自然無法建立新檔案。
執行「df-i」指令即可查看每個硬碟分割區對應的的inode總數和已經使用的inode數量。
#inode包含檔案的元訊息,具體有以下的內容:
- 檔案的位元組數
- 檔案的擁有者user ID
- 檔案的group ID
- 檔案的讀取、寫入、執行權限
- #連結數,即有多少檔案指向這個inode
- 檔案的時間戳
兩種方式查看某個檔案的inode資訊
方法一:stat [檔案名稱]
範例:stat aa.txt
優點:可以查看檔案inode 的詳細資訊
方法二:ls -i [檔案名稱]
#只能顯示inode號碼
Linux系統檔案三個主要的時間屬性(即inode 裡的時間戳記)
- ctime(change time)
指的是最後一次改變檔案或目錄(屬性)的時間 - atime(access time)
指的是最後一次存取文件或目錄的時間 - mtime(modify time)
指的是最後一次修改檔案或目錄(內容)的時間
三、inode的特殊作用
#由於inode號碼與檔案名稱分離,導致一些Unix/Linux系統有以下的現象:
- 當文件名包含特殊字符,可能無法正常刪除文件,直接刪除inode,也可以刪除文件
- 移動或重新命名文件時,只會改變文件名,不影響inode號碼
- 開啟一個文件後,系統透過inode號碼來識別該文件,不再考慮文件名
- 文件資料被修改保存後,會產生一個新的inode 號碼(原先的inode 號會被釋放)
如何透過刪除inode號刪除檔案:
方法一(刪除前需確認訊息):find ./ -inum [inode號] -exec rm -i {} \ ;
#方法二(直接刪除):find ./ -inum [inode號] -delete
相關推薦:《Linux影片教學》
以上是linux的i節點號碼是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

VS Code 一步/下一步快捷鍵的使用方法:一步(向後):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)
