來自Linux操作系統的inode和軟硬鏈接介紹
如果說操作系統的半壁江山是微軟的,那另一半估計應該屬于Linux操作系統的了。于是很多人開始學習Linux操作系統這個新貴。本文為你介紹Linux的inode、軟鏈接、硬鏈接的知識。對你學習Linux的進程有所提高。
inode
Linux的文件系統(硬盤)分為2部分:inode table 與 data area。inode table上有許多的inode, 每個inode分別記錄一個檔案的屬性與這個檔案分布在哪些datablock上(也就是我們說的指針)。inode有兩個功能:記錄檔案屬性和指針。data area由很多datablock構成,data area記錄文件的真實內容。
硬鏈接
Hard Link 只是在某個目錄下新增一個該檔案的關連數據而已!
1.舉個例子來說,我的 /home/vbird/crontab 為一個 hard link 的檔案,他連結到 /etc/crontab 這個檔案,也就是說,其實 /home/vbird/crontab 與 /etc/crontab是同一個檔案,只是有兩個目錄( /etc 與 /home/vbird )記錄了 crontab 這個檔案的關連數據罷了!也就是說,我由 /etc 的 Block 所記錄的關連數據可知道 crontab 的 inode 放置在 A 處,而由 /home/vbird 這個目錄下的關連數據,contab 同樣也指到 A處的 inode! 所以,crontab 這個檔案的 inode 與 block 都沒有改變,有的只是有兩個目錄記錄了關連數據.
2.使用 hard link 設定連結文件時,磁盤的空間與 inode 的數目都不會改變!由上面的說明來看,我們可以知道, hard link 只是在某個目錄下的 block 多寫入一個關連數據,所以當然不會用掉 inode 與磁盤空間。
3.當我們修改其中一個文件的內容時,互為硬鏈接的文件的內容也會跟著變化。如果我們刪除互為硬鏈接關系的某個文件時,其它的文件并不受影響.
4.由于 hard link 是在同一個 partition 上面進行數據關連的建立,所以 hard link 是有限制的:
a. 不能跨 Filesystem.
b. 不能 link 目錄。
5.假設已經建立若干me.txt的硬鏈接:ln me.txt hard_me.txt ……。
之后運行 ls -l: -rw-r--r-- 3 younes younes 40 2009-12-03 16:36 hard_me.txt ,其中橙色底紋的數字代表指向該文件硬鏈接的數目。
軟鏈接
1. 軟鏈接也叫符號鏈接,他和硬鏈接有所不同,軟鏈接文件只是其源文件的一個標記。當我們刪除了源文件后,鏈接文件不能獨立存在,雖然仍保留文件名,但我們卻不能查看軟鏈接文件的內容了.
2. Symbolic Link 與 Windows 的快捷方式可以給他劃上等號,由 Symbolic link 所建立的檔案為一個獨立的新的檔案,所以會占用調inode與block。
這就是Linux操作系統的inode、軟鏈接、硬鏈接。
【編輯推薦】