首先要弄清楚,在linux
下面舉一些例子:
$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 1 longcheng longcheng 57 8月 5 16:40 file2
$ ln file2 file2hard
$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
建立軟鏈結,只要在ln後面加上選項 –s,下面舉個例子
$ ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
$ln –s file1 file1soft
$ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1
軟鏈結也有硬鏈結沒有的缺點,因為鏈結檔案包含有原檔案的路徑資訊,所以當原檔案從乙個目錄下移到其他目錄中,再訪問鏈結檔案,系統就找不到了,而硬鏈結就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和儲存原檔案的路徑。
再舉乙個例子來說明一下:
假設有檔案src,hl是它的乙個hardlink,那麼會新建乙個檔案索引,和src使用同乙個i-node,當src被刪除之後,仍然可以通過hl來訪問檔案內容。實際上當hl已經建立了以後,hl和src完全是等同的,你甚至可以說src是hl的乙個hardlink。
建立乙個src的symbol link,名字是sl,那麼sl只是乙個特殊的檔案,裡面記錄了src的檔名和路徑(具體內容取決於執行ln命令的引數)。sl有自己的i-node。當src被刪除的時候,sl就失效了。
硬連線 軟連線
硬鏈結 系統呼叫link在檔案系統結構中將乙個檔案鏈結到另外乙個新的名字上,也就是為被鏈結檔案的索引節點建立乙個新的目錄項。通過鏈結操作,乙個檔案可以有兩個以上的不同名字,系統可以通過其中任意乙個名字來訪問檔案。核心並不知道哪個名字是最初的檔名。這種為索引節點建立新目錄項的鏈結方式稱為 硬鏈結 乙個...
軟連線與硬連線
要弄清楚2者的區別,首先得明白linux系統中檔案是如何儲存的.在linux中儲存乙個檔案由3部分組成 檔名 inode block 資料塊 關於inode block用來儲存資料.而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小,歸屬的使用者組,讀寫許可權等.inode為每個檔案進...
linux 軟連線 硬連線
1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...