目錄
一、linux中的i節點
首頁 運維 linux運維 linux的i節點號碼是什麼意思

linux的i節點號碼是什麼意思

Mar 30, 2023 am 11:49 AM
linux

在linux中,i節點號是指inode號,用來識別不同的檔案。 Linux內部使用inode號來識別文件,而非文件名,對於系統來說,文件名是inode號的別稱,是便於用戶識別文件的,文件名和inode號是一一對應的關係,每個inode號對應一個檔名。

linux的i節點號碼是什麼意思

本教學操作環境: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的i節點號碼是什麼意思

  • #當使用者在Linux系統中試圖存取一個檔案時,系統會先根據文件名去查找它對應的inode號碼;透過inode號碼,獲取inode信息;根據inode信息,看該用戶是否具有訪問這個文件的權限;如果有,就指向相對應的數據block,並讀取數據;如果沒有就會返回。

存取檔案的簡單流程:

linux的i節點號碼是什麼意思

#二、Linux 檔案儲存

2.1 inode的數量限制

  • inode也會消耗硬碟空間,所以格式化的時候,作業系統會自動將硬碟分成兩個區域:一個是資料區,存放檔案資料;另一個是inode區,存放inode 所包含的資訊。每個inode 的大小,一般是128 位元組或256位元組。
  • 通常不需要關注單一inode的大小,而是需要專注於inode總數,inode的總數在格式化時就已經定好了
    ——為什麼需要重點關注inode總數,因為當inode用完時,即便磁碟還有空間也無法建立新檔案了,因為在建立檔案時需要一個inode號與之對應,而沒有inode時自然無法建立新檔案。
    執行「df-i」指令即可查看每個硬碟分割區對應的的inode總數和已經使用的inode數量。

linux的i節點號碼是什麼意思

2.2 inode 的內容

#inode包含檔案的元訊息,具體有以下的內容:

  • 檔案的位元組數
  • 檔案的擁有者user ID
  • 檔案的group ID
  • 檔案的讀取、寫入、執行權限
  • #連結數,即有多少檔案指向這個inode
  • 檔案的時間戳
  • 兩種方式查看某個檔案的inode資訊

方法一:stat [檔案名稱]

範例:stat aa.txt

linux的i節點號碼是什麼意思

優點:可以查看檔案inode 的詳細資訊

方法二:ls -i [檔案名稱]

linux的i節點號碼是什麼意思

#只能顯示inode號碼

#2.3 Linux系統檔案三個主要的時間屬性

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 {} \ ;

linux的i節點號碼是什麼意思

#方法二(直接刪除):find ./ -inum [inode號] -delete

linux的i節點號碼是什麼意思

相關推薦:《Linux影片教學

以上是linux的i節點號碼是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

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

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

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

vscode上一步下一步快捷鍵 vscode上一步下一步快捷鍵 Apr 15, 2025 pm 10:51 PM

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

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

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

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

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

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

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

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

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

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

See all articles