【Linux基礎】Linux硬連結簡介
一、Linux硬連結簡介
Linux下的檔案是通過索引節點(Inode)來識別檔案的,硬連結可以認為是一個指向檔案索引節點的指標,系統並不為它重新分配inode。就像一個檔案有多個檔名,每新增一個硬連結,檔案的連結數就加1。
硬連結檔案有兩個限制
1)、不允許給目錄建立硬連結;
2)、只有在同一檔案系統中的檔案之間才能建立硬連結。
二、Linux硬連結命令格式
Linux硬連結的命令格式如下所示:
ln [options] existingfile newfile ln [options] existingfile-list directory
說明:
第一種格式是為”existingfile”建立硬連結,硬連結的檔名為”newfile”。
第二種格式是在”directory”目錄中,為 ”existingfile-list”中包含的所有檔案建立一個同名的硬連結。
常用選項[options]
-f 無論”newfile”存在與否,都建立連結。 -n 如果”newfile”已存在,就不建立連結。
三、Linux硬連結使用舉例
Linux硬連結使用示例如下所示:
#ll -il total 0 1069026 -rw-r--r-- 2 root root 0 Dec 25 21:30 file1 1069029 -rw-r--r-- 1 root root 0 Dec 25 21:29 file2 #ln file2 file2hard #ll -il total 0 1069026 -rw-r--r-- 2 root root 0 Dec 25 21:30 file1 1069029 -rw-r--r-- 2 root root 0 Dec 25 21:29 file2 1069029 -rw-r--r-- 2 root root 0 Dec 25 21:29 file2hard
說明:
在上面的例子中,建立連結前,file1 顯示的連結數目為1;
建立連結後,
1)file1和file1hard的連結數目都變為2;
2)file1和file1hard在inode號是一樣的;
3)file1和file1hard顯示的檔案大小也是一樣;
file1和file1hard是同一個檔案的兩個名字,具有同樣的索引節點號和檔案屬性。
建立檔案file1的硬連結,就是為file1的檔案索引節點在當前目錄上建立一個新指標。
你可以刪除其中任何一個,如rm file2 ,但每次只會刪除一個指標,此時連結數減一,只有將所有指向檔案內容的指標,也即連結數刪為0時,核心才會真正把檔案內容從磁碟上刪除。
因此,硬連結可以算是為檔案上了一個保險,用RM命令刪除建立了硬連結的檔案時,並不會真正的將檔案刪除掉,從而減小了誤刪的風險。
四、Linux硬連結的缺點
雖然硬連結十分實用,但卻有如下兩個缺點:
1)不可以在不同檔案系統的檔案間建立連結。
2)只有超級使用者才可以為目錄建立硬連結。
linux學習交流群:690327559
linux免費學習課程 :
linux基礎
http://www.makeru.com.cn/course/details/2058?s=26056
C高階之linux
http://www.makeru.com.cn/course/details/2478?s=26056
linux多執行緒程式設計
http://www.makeru.com.cn/course/details/1937?s=26056