永久連結和軟串連的區別:
要說明這個問題,先說明下liunx下檔案和目錄的本質。
在liunx上,目錄也是檔案的一種,它是儲存了一張表的檔案。例如有一個叫程式的檔案夾,裡面有兩個檔案1和2.在那張目錄表內。它的內容是這樣的
名稱 節點
1 338
2 228
那麼什麼是節點呢。c語言我們都學過,我們簡單地把節點號理解成一個數組的下標,把記憶體看成一個大數組,每個檔案都可以看成一個數組中的一個元素,而知道了節點號,就可以找到了實質的檔案內容。
有了以上的認識,就可以進一步地解釋永久連結:
永久連結的書寫格式是:ln 目標檔案名 連結名
那麼它的過程是怎麼樣的呢。
例如我們輸入:ln 3 2
那麼,在同個目錄表下增加一項
名稱 節點
1 338
2 228
3 228
這時候,檔案3也指向了跟2一樣的記憶體塊,也就是說跟2的內容是完全一樣的。
而軟串連又是怎麼回事呢。
這裡得說明,軟串連和永久連結也是特殊的檔案,在liunx中的所有都是以檔案表示的,軟串連可以看成一個文字檔,它的內容是儲存目標檔案名的路徑地址。
軟串連的格式是ln -s 目標檔案名 連結名
例如輸入 ln -s 4 2
它的執行過程是這樣的,先把2檔案的路徑名複製到4,執行4時,先從中讀到2的路徑名,找到2這個檔案,然後執行2.所以對4檔案的操作都是對2檔案的操作。
Linux系統中,核心為每一個新建立的檔案分配一個Inode(索引結點),每個檔案都有一個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複製到記憶體在,從而實現檔案的快速存取。用命令ls -i 可查看節點號
永久連結:(hard link)
只針對於檔案,通過索引節點來進行連結,系統中的所有檔案都不會有相同的indoe。如果有相同的indoe那麼這個檔案連結著另一個檔案,內容是相同的並同步,稱為永久連結。可以使用ls –l命令顯示出它的永久連結數。刪掉源檔案,永久連結檔案正常使用。
軟串連:(symbolic link)也稱為符號連結
檔案和目錄都可以,軟串連類似於windows下的捷徑,刪掉源檔案後,軟串連將不能正常使用。注意軟串連是檔案夾,當進入這個軟串連下的目錄時,執行一些命令比如cp,目錄是按源檔案目錄計算的,而當前所在目錄還是在這個物理目錄。
建立永久連結:#ln 源檔案 目標檔案
建立軟串連:#ln –s 源檔案 目標檔案
1.永久連結
#mkdir /test
#cd /test
#touch aaa.txt
#echo “I am system administrator” >> aaa.txt
#ln aaa.txt /test/aaa.txt_hard_link
#ls -il
1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt
1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt_hard_link
可以看到兩個檔案的索引節點完全相同,而且永久連結數為2,檔案本身也是1個永久連結數,每增加一個永久連結就加1,而且裡面的內容完全相同
#mkdir bbb
#ln bbb /test/bbb.txt_hard_link
ln: `bbb': hard link not allowed for directory
永久連結是不能對目錄操作
如果刪掉aaa.txt源檔案,它的永久連結檔案aaa.txt_hard_link可以正常工作
2.軟連結
#ln –s aaa.txt /test/aaa.txt_soft_link
#ls –il
1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt
1144062 -rw-r--r-- 2 root root 26 Feb 20 20:17 aaa.txt_hard_link
1144065 lrwxrwxrwx 1 root root 7 Feb 20 20:55 aaa.txt_soft_link -> aaa.txt
檔案類型是l連結檔案,可以對檔案或目錄使用軟串連,刪掉源檔案aaa.txt.它的軟串連檔案aaa.txt_soft_link不能正常使用
檔案連結數:建立出的新檔案它的永久連結數是1,檔案本身是一個永久連結。
目錄連結數:目錄永久連結是2因為目錄本身也是一個永久連結,目錄裡的.點(目前的目錄)也是一個永久連結、
刪除連結
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
備忘:I節點 :它是UNIX內部用於描述檔案特性的資料結構。我們通常稱I節點為檔案索引結點(資訊結點)。i節點 含有關於檔案的大部分的重要訊息,包括檔案資料區塊在磁碟上的地址。每一個I節點有它自己的標誌號,我們稱為檔案順序號。I節點包含的資訊 1.檔案類型 2.檔案屬主關係 3.檔案的存取權限 4.檔案的時間截。