inode
1.理解inode,要從文件儲存說起。
文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區(qū)"(Sector)。
2.操作系統(tǒng)讀取硬盤的時候,不會一個個扇區(qū)地讀取,這樣效率太低,而是一次性連續(xù)讀取多個扇區(qū),即一次性讀取一個"塊"(block)。這種由多個扇區(qū)組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續(xù)八個 sector組成一個 block。
3.文件數(shù)據(jù)都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創(chuàng)建者、文件的創(chuàng)建日期、文件的大小等等。這種儲存文件元信息的區(qū)域就叫做inode,中文譯名為"索引節(jié)點"。
inode(index node)表中包含文件系統(tǒng)所有文件列表
一個節(jié)點(索引節(jié)點)是在一個表項,包含有關(guān)文件的信息(元數(shù)據(jù)),包括:
文件類型,權(quán)限,UID,GID
鏈接數(shù)(指向這個文件名路徑名稱個數(shù))
該文件的大小和不同的時間戳
指向磁盤上文件的數(shù)據(jù)塊指針
有關(guān)文件的其他數(shù)據(jù)

目錄:
1.文件引用一個是inode號
2.是通過文件名來引用一個文件
3.一個目錄是目錄下的文件名和文件inode號之間的映射

cp和inode:
在CP的命令:分配一個空閑的inode號,在inode表中生成新條目;在目錄中創(chuàng)建一個目錄項,將名稱與inode編號關(guān)聯(lián);拷貝數(shù)據(jù)生成新的文件。
rm和inode:
rm命令:鏈接數(shù)遞減,從而釋放的inode號可以被重用;把數(shù)據(jù)塊放在空閑列表中;刪除目錄項;數(shù)據(jù)實際上不會馬上被刪除,但當另一個文件使用數(shù)據(jù)塊時將被覆蓋。
mv和inode:
1.如果mv命令的目標和源在相同的文件系統(tǒng),作為mv命令:用新的文件名創(chuàng)建對應新的目錄項;刪除舊目錄條目對應的舊的文件名;不影響inode表(除時間戳)或磁盤上的數(shù)據(jù)位置:沒有數(shù)據(jù)被移動!2.如果目標和源在一個不同的文件系統(tǒng),mv相當于cp和rm。
硬鏈接:
一般情況下,文件名和inode號碼是"一一對應"關(guān)系,每個inode號碼對應一個文件名。但是,Unix/Linux系統(tǒng)允許,多個文件名指向同一個inode號碼。這意味著,可以用不同的文件名訪問同樣的內(nèi)容;對文件內(nèi)容進行修改,會影響到所有文件名;但是,刪除一個文件名,不影響另一個文件名的訪問。這種情況就被稱為"硬鏈接"(hard link)。
1.語法:
ln filename [linkname]
2.創(chuàng)建硬鏈接會增加額外的記錄項以引用文件
3.本質(zhì)是一個文件多個名稱,所有屬性完全相同(包括inode號)
硬鏈接不占多余的空間,不占用inode號
4.創(chuàng)建時鏈接數(shù)遞增
5.硬鏈接不能跨分區(qū)、跨設備
6.存在對等關(guān)系,不存在依賴性
7.不能對目錄來創(chuàng)建硬鏈接(不支持文件夾)
8.類似起到別名的效果,不過記錄的是文件路徑
9.硬鏈接的相對路徑相對的是當前工作目錄下的路徑,不是連接文件的路徑
軟鏈接:
除了硬鏈接以外,還有一種特殊情況。文件A和文件B的inode號碼雖然不一樣,但是文件A的內(nèi)容是文件B的路徑。讀取文件A時,系統(tǒng)會自動將訪問者導向文件B。因此,無論打開哪一個文件,最終讀取的都是文件B。這時,文件A就稱為文件B的"軟鏈接"(soft link)或者"符號鏈接(symbolic link)。這意味著,文件A依賴于文件B而存在,如果刪除了文件B,打開文件A就會報錯:"No such file or directory"。這是軟鏈接與硬鏈接最大的不同:文件A指向文件B的文件名,而不是文件B的inode號碼,文件B的inode"鏈接數(shù)"不會因此發(fā)生變化。
1.語法:
ln -s filename [linkname]
2.一個符號鏈接指向另一個文件(相當于Windows里的快捷方式)
inode號不一樣,鏈接數(shù)不增加。
3.ls -l的顯示鏈接的名稱和引用的文件
4.一個符號鏈接的內(nèi)容是它引用文件的名稱
5.可以對目錄進行
6.可以跨分區(qū)
7.嚴重依賴于原始文件,
8.不是對等關(guān)系,
9.指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數(shù);
10.軟鏈接的相對路徑一定相對于軟鏈接文件的路徑而不是相對當前工作目錄。