Linux下的軟連結和硬連結,檔案拷貝的區別

tolywang發表於2009-05-04

總結如下:

硬連結:在磁碟上有一份內容一樣的檔案產生,但不改變檔案的Inode,也就是與原檔案共用Inode,

軟連結:不在磁碟上有一份內容一樣的檔案產生(),但產生新的Inode,

檔案複製:產生新的檔案內容,並且使用新的Inode.

簡單的說軟連結相當於快捷方式。

-----------------------------------------------------------------------------------------------------------------------  

 

符號連結 

存在兩種不同型別的連結,軟連結和硬連結。修改其中一個,硬連線指向的是節點(inode),而軟連線指向的是路徑(path) 



軟連結檔案 

  軟連結又叫符號連結,這個檔案包含了另一個檔案的路徑名。可以是任意檔案或目錄,可以連結不同檔案系統的檔案。和win下的快捷方式差不多。連結檔案甚至可以連結不存在的檔案,這就產生一般稱之為"斷鏈"的問題(或曰“現象"),連結檔案甚至可以迴圈連結自己。類似於程式語言中的遞迴。 

命令格式: 
程式碼: 
ln [-s] source_path target_path 


硬連結檔案 

  info ln 命令告訴您,硬連結是已存在檔案的另一個名字,硬連線的命令是 

程式碼: 
ln -d existfile newfile 


引用: 
硬連結檔案有兩個限制 

  1、不允許給目錄建立硬連結; 
  2、只有在同一檔案系統中的檔案之間才能建立連結。 


  對硬連結檔案進行讀寫和刪除操作時候,結果和軟連結相同。但如果我們刪除硬連結檔案的原始檔,硬連結檔案仍然存在,而且保留了願有的內容。這時,系統就“忘記”了它曾經是硬連結檔案。而把他當成一個普通檔案。修改其中一個,與其連線的檔案同時被修改 


程式碼: 
$umask 022 
$ cp /etc/httpd/conf/httpd.conf /usr/sam 

原來前面做的試驗,改變了系統預設的umask值,現在改回來為022, 
舉個httpd.conf檔案做例 子 

程式碼: 
$ ln httpd.conf httpd1.conf 
$ ln -s httpd.conf httpd2.conf 


第一條為硬連結,第二條為軟連結 

程式碼: 
$ ls -li 

程式碼: 
總用量 80 
1077669   -rw-r--r--    2 sam      adm         34890 10月 31 00:57 httpd1.conf 
1077668  lrwxrwxrwx    1 sam      adm            10 10月 31 00:58 httpd2.conf ->; httpd.conf 
1077669  -rw-r--r--    2 sam      adm         34890 10月 31 00:57 httpd.conf 


可以看到,使用ls -li,軟連線只產生了10位元組的快捷而已,硬連線卻實實在在的的拷貝。最前面的inode硬連結和原始檔是一樣的,而軟連結不一樣,具體看一下回復 

對http1.conf進行編輯,可以發現httpd.conf也發生了一樣的變化 

程式碼: 
$ rm httpd.conf 


現在刪除連結的原始檔,來比較不同之處 

程式碼: 
$ ls -l 
總用量 44 
drw-r--r--    2 sam      adm          4096 10月 30 20:14 file6 
-rw-r--r--    1 sam      adm         34890 10月 31 00:57 httpd1.conf 
lrwxrwxrwx    1 sam      adm            10 10月 31 00:58 httpd2.conf ->; httpd.conf 


發現,httpd2.conf實際已經不存在了,是斷鏈,而httpd1.conf變也了普通檔案

----------------------------------------------------------------------------------  

主要區別如下:
1.硬連結實際上是為檔案建一個別名,連結檔案和原檔案實際上是同一個檔案。可以通過ls -i來檢視一下,這兩個檔案的inode號是同一個,說明它們是同一個檔案;而軟連結建立的是一個指向,即連結檔案內的內容是指向原檔案的指標,它們是兩個檔案。
2.硬連結只能用於檔案,不能用於目錄;軟連結可以為目錄建連結。
3.硬連結不能跨檔案系統操作。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-592512/,如需轉載,請註明出處,否則將追究法律責任。

相關文章