鏈接是指在電子計算機程序的各模塊之間傳遞參數和控制命令,并把它們組成一個可執行的整體的過程。通俗一點無非是把文件名和計算機文件系統使用的節點號鏈接起來。
linux中鏈接有硬鏈接和軟連接之分,首先我們來介紹硬鏈接,硬鏈接相當于創建了文件的第二個名字,增加了額外的記錄項用來引用文件,還是隸屬與同一文件系統上,是同一個物理文件,且引用相同的節點號。它的創建只引起了鏈接數的增減,而且在執行刪除時也是一樣。但是要確保文件的正常,至少保持一個鏈接數,也就是說一旦創建完成后可作為獨立文件使用。因其隸屬同一個文件系統下,局限了它不能跨驅動器或分區使用,他還不能創建目錄鏈接,因為在Linux中目錄中的.和..也是硬鏈接關系,創建會破壞目錄環。因此硬鏈接具有以下特性:
文件有相同的 inode 及 data block;
只能對已存在的文件進行創建;
不能交叉文件系統進行硬鏈接的創建;
不能對目錄進行創建,只可對文件創建;
刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件
指定硬鏈接的語法是 ln filename [linkname],注意其順序。
軟鏈接是一個符號指向性文件,即一個符號鏈接指向另一個文件,其大小為指向的路徑字符串的長度,不增減目標文件的節點數。因此具有以下特點:
軟鏈接有自己的文件屬性及權限等;
可對不存在的文件或目錄創建軟鏈接;
軟鏈接可交叉文件系統;
軟鏈接可對文件或目錄創建;
創建軟鏈接時,鏈接計數 i_nlink 不會增加;
刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接)。
參考文章:http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/
原創文章,作者:yangtian,如若轉載,請注明出處:http://www.www58058.com/53153