1. 程式人生 > >【Linux基礎】Linux硬連結簡介

【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