mysql inode_Linux中inode的大小、作用讲述
linux中的inode
理解inode
inode是文件存儲(chǔ),文件存儲(chǔ)在營盤山,最小的存儲(chǔ)單位叫扇區(qū)。每個(gè)扇區(qū)的存儲(chǔ)512字節(jié)。
操作系統(tǒng)讀取硬盤的時(shí)候,不會(huì)一個(gè)一個(gè)扇區(qū)的讀取,這樣效率太低。而是一次性讀取多個(gè)扇區(qū),一次性讀取一個(gè)塊。也就是8個(gè)連續(xù)的扇區(qū)組成一個(gè)block。
文件存儲(chǔ)在塊中,但是我們還需要找一個(gè)存儲(chǔ)元信息的區(qū)域叫做inode。中文譯名“索引節(jié)點(diǎn)”。
每個(gè)文件都有對(duì)應(yīng)的索引節(jié)點(diǎn)。
inode的內(nèi)容
在inode的元信息中,保存了以下內(nèi)容:
* 文件的字節(jié)數(shù)
* 文件擁有者的User ID
* 文件Group ID
* 文件的讀寫執(zhí)行權(quán)限
* 文件的時(shí)間戳,ctime上次變動(dòng)的時(shí)間,mtime文件內(nèi)容上次變動(dòng)的時(shí)間,atime,文件上次訪問的時(shí)間。
* 鏈接數(shù),就是有多少文件名指向這個(gè)inode
* 我呢間數(shù)據(jù)block的位置。
我們可以使用以下命令盡心查看inode的信息
stat demo.txt
inode的大小
在inode也是會(huì)消耗磁盤的空間,所以格式化的時(shí)候,操作系統(tǒng)會(huì)將磁盤分為兩個(gè)部分,一個(gè)是數(shù)據(jù)存放的位置就是block;另一個(gè)就是inode區(qū),用來存放inode的信息。
每個(gè)inode一般是128字節(jié)或者是256字節(jié)。inode節(jié)點(diǎn)的總數(shù)是在格式化的時(shí)候給定你的。一般是每1kb或每2kb就設(shè)置一個(gè)inode。那么inode table就會(huì)占用磁盤的12.8%。
我們可以使用以下命令查看:
df -i
查看每個(gè)inode節(jié)點(diǎn)的大小用命令
dumpe2fs -h /dev/hda |grep "Inode size"
每個(gè)文件都需要有inode,因此有可能出現(xiàn)inode已經(jīng)用完,但是硬盤沒有存滿。這個(gè)時(shí)候就沒有辦法創(chuàng)建新的文件。
inode號(hào)碼
每個(gè)inode都有一個(gè)號(hào)碼,操作系統(tǒng)用inode號(hào)碼來識(shí)別不同的文件。
需要注意的是,在linux系統(tǒng)內(nèi)部,使用的就是inode號(hào)碼來識(shí)別文件,文件名只是便于識(shí)別的別稱。
我們使用以下命令查看文件inode號(hào)
ls -i demo.txt
目錄文件
linux系統(tǒng)中,目錄也是一種文件,打開目錄其實(shí)就是打開目錄文件。
目錄文件結(jié)構(gòu)非常簡單,只有兩部分組成一個(gè)是inode號(hào),一個(gè)是文件的名稱。文件的元信息都存儲(chǔ)在inode中。
硬鏈接
一般情況下,文件名合inode號(hào)碼是一一對(duì)應(yīng)的,每個(gè)inode號(hào)碼都是對(duì)應(yīng)著一個(gè)文件名稱。但是在linux中允許多個(gè)文件指向同一個(gè)inode號(hào)碼。這就意味著我們可以通過不同的文件名訪問相同的內(nèi)容。修改一個(gè)文件,影響所有的文件,但是刪除文件只會(huì)影響自己本身的訪問,不影響其他文件名的訪問。這種情況叫做“硬鏈接(hard link)”。
創(chuàng)建硬鏈接命令:
ln 源文件 目標(biāo)文件
任何一個(gè)目錄的硬鏈接總數(shù)等于,2加上他子目錄數(shù)(包含隱藏目錄)。
軟連接
文件A和文件B的inode號(hào)碼雖然不一樣,但是文件A的內(nèi)容是文件B的路徑。讀取文件A時(shí),系統(tǒng)會(huì)自動(dòng)將訪問者導(dǎo)向文件B。因此,無論打開哪一個(gè)文件,最終讀取的都是文件B。這時(shí),文件A就稱為文件B的”軟鏈接”(soft link)或者”符號(hào)鏈接(symbolic link)。
創(chuàng)建命令為:
ln -s 源文件 目標(biāo)文件或目錄
inode的特殊作用
由于inode號(hào)碼和文件名稱的分離。導(dǎo)致一些linux系統(tǒng)特有的現(xiàn)象。
1. 有時(shí)文件包含特殊字符無法正常刪除,這個(gè)時(shí)候刪除inode節(jié)點(diǎn)即可。
2. 移動(dòng)或者重命名文件,不會(huì)影響inode號(hào)碼。
3. 打開一個(gè)文件以后,系統(tǒng)使用inode號(hào)碼識(shí)別文件,不用考慮文件名。
希望與廣大網(wǎng)友互動(dòng)??
點(diǎn)此進(jìn)行留言吧!
總結(jié)
以上是生活随笔為你收集整理的mysql inode_Linux中inode的大小、作用讲述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中学计算机基础知识,初中信息技术学业水平
- 下一篇: iOS: How To Make Aut