軟連線和硬連線

2022-01-31 20:37:22 字數 3283 閱讀 8659

ln命令

該命令在檔案之間建立鏈結。這種操作實際上是給系統中已有的某個檔案指定另外乙個可用於訪問它的名稱。對於這個新的檔名,我們可以為之指定不同的訪問許可權,以控制對資訊的共享和安全性的問題。

如果鏈結指向目錄,使用者就可以利用該鏈結直接進入被鏈結的目錄而不用打一大堆的路徑名。而且,即使我們刪除這個鏈結,也不會破壞原來的目錄。

語法:ln [選項

] 目標

[鏈結名

]ln [選項

] 目標 目錄

鏈結有兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(

symbolic link

)。建立硬鏈結時,鏈結檔案和被鏈結檔案必須位於同乙個檔案系統中,並且不能建立指向目錄的硬鏈結。而對符號鏈結,則不存在這個問題。預設情況下,

ln產生硬鏈結。

在硬鏈結的情況下,引數中的「目標

」被鏈結至

[鏈結名

]。如果

[鏈結名

]是乙個目錄名,系統將在該目錄之下建立乙個或多個與「目標

」同名的鏈結檔案,鏈結檔案和被鏈結檔案的內容完全相同。如果

[鏈結名

]為乙個檔案,使用者將被告知該檔案已存在且不進行鏈結。如果指定了多個「目標

」引數,那麼最後乙個引數必須為目錄。

如果給ln命令加上

- s選項,則建立符號鏈結。

如果[鏈結名

]已經存在但不是目錄,將不做鏈結。

[鏈結名

]可以是任何乙個檔名(可包含路徑),也可以是乙個目錄,並且允許它與「目標

」不在同乙個檔案系統中。如果

[鏈結名

]是乙個已經存在的目錄,系統將在該目錄下建立乙個或多個與「目標

」同名的檔案,此新建的檔案實際上是指向原「目標

」的符號鏈結檔案。

eg:

ln -s source     dist     #  建立軟連線

n     source     dist     #   建立硬連線

l軟鏈結實際上只是一段文字,裡面包含著它所指向的檔案的名字,系統看到軟鏈結後自動跳到對應的檔案位置處進行處理;相反,硬鏈結為檔案開設乙個新的目錄項,硬鏈結與檔案原有的名字是平權的,在linux看來它們是等價的。由於這個原因,硬鏈結不能連線兩個不同檔案系統上的檔案。

軟連線與windows下的快捷方式類似

至於硬連線,舉個例子說吧,你把dir1/file1硬連線到

dir2/file2,

就是在dir2下建立乙個

dir1/file1

的映象檔案

file2

,它與file1

是占用一樣大的空間的,

並且改動兩者中的乙個,另乙個也會發生同樣的改動.

軟連線和硬連線可以這樣理解:

硬連線就像乙個檔案有多個檔名,

軟連線就是產生乙個新檔案(這個檔案內容

,實際上就是

記當要鏈結原檔案路徑的資訊),這個檔案指向另乙個檔案的位置,

硬連線必須在同一檔案系統中,而軟連線可以跨檔案系統

硬連線:源檔名和鏈結檔名都指向相同的實體地址,目錄不能夠有硬連線,檔案在磁碟中只有乙個複製,可以節省硬碟空間,由於刪除檔案要在同乙個索引節點屬於唯一的連線時才能成功,因此可以防止不必要的誤刪除軟連線(符號連線)用ln -s命令建立檔案的符號連線,符號連線是

linux

特殊檔案的一種,作為乙個檔案,它的資料是它所連線的檔案的路徑名,類似於硬體方式,

******

可以刪除原始檔案 而連線檔案仍然存在。

鏈結有兩種方式,軟鏈結和硬鏈結。

1 軟鏈結檔案

軟鏈結又叫符號鏈結,

這個檔案包含了另乙個檔案的路徑名

。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。

**********鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為'斷鏈

'的問題(或曰

「現象'),鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。

用ln -s 命令可以生成乙個軟連線,如下

:[root@linux236 test]# ln -s source_file softlink_file

在對符號檔案進行讀或寫操作的時候,系統會自動把該操作轉換為對原始檔的操作,但刪除鏈結檔案時,系統僅僅刪除鏈結檔案,而不刪除原始檔本身。

2 硬鏈結檔案

info ln 命令告訴您,

硬鏈結是已存在檔案的另乙個名字(a 'hard link' is another name for an existing file),這多少有些令人困惑。硬連線的命令是

ln -d existfile newfile

硬鏈結檔案有兩個限制

1)、不允許給目錄建立硬鏈結;

2)、只有在同一檔案系統中的檔案之間才能建立硬鏈結。

***********對硬鏈結檔案進行讀寫和刪除操作時候,結果和軟鏈結相同。但如果我們刪除硬鏈結檔案的原始檔,硬鏈結檔案仍然存在,而且保留了願有的內容。

***********這時,系統就「忘記

」了它曾經是硬鏈結檔案。而把他當成乙個普通檔案。

二兩者之間的區別

硬連線指通過索引節點來進行的連線。-在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號

(inode number)

。在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。

*******

硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要

檔案,以防止「誤刪

」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個

連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案才會被真正刪除。

軟鏈結檔案有點類似於windows的快捷方式。它實際上是特殊檔案的一種。在符號連線中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。

三個人體會

軟鏈結是另乙個檔案,作用可以理解為乙個指標,******作用在這個檔案上的操作除了刪除都直接轉向實際指向檔案,由於是乙個真實的檔案所以占用磁碟空間

硬鏈結可以認為不是乙個檔案,它只是實際檔案的乙個別名,它的作用是防止真實檔案被誤操作,給乙個檔案建立硬鏈結後,他們互為別名,刪除其中任意乙個,

這樣用rm命令只會刪除該別名,實際檔案並不會被刪除。只有鏈結數為

0時,才會刪除原始檔案

軟連線和硬連線

軟連線和硬鏈結的理解 linux檔案管理使用的是inode,任何乙個檔案或者是乙個資料夾,都是使用inode來管理檔案的。在檔案系統中,乙個檔案的基本資訊中就記錄了該檔案的inode資訊,在訪問乙個檔案的時候,系統找到這個檔名對應的inode號碼 其次,通過inode號碼,獲取inode資訊 最後,...

軟連線,硬連線

首先要弄清楚,在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...

硬連線 軟連線

硬鏈結 系統呼叫link在檔案系統結構中將乙個檔案鏈結到另外乙個新的名字上,也就是為被鏈結檔案的索引節點建立乙個新的目錄項。通過鏈結操作,乙個檔案可以有兩個以上的不同名字,系統可以通過其中任意乙個名字來訪問檔案。核心並不知道哪個名字是最初的檔名。這種為索引節點建立新目錄項的鏈結方式稱為 硬鏈結 乙個...