ln命令 硬連線和軟連線

2021-05-25 07:21:06 字數 2847 閱讀 1943

ln命令

指令名稱 : ln

使用許可權 : 所有使用者

使用方式 : ln [options] source dist,其中 option 的格式為 :

[-bdfinsvf] [-s backup-suffix] [-v ] [--help] [--version] [--]

ln source dist 是產生乙個鏈結(dist)到 source,至於使用硬鏈結或軟鏈結則由引數決定。

如果正在將某個檔案鏈結到新的名字,那麼只能列出乙個檔案。如果鏈結到乙個目錄,那麼可以列出多個檔案。

如果不指定目標檔案,ln 命令會在當前的目錄中建立乙個新的檔案。新的檔案繼承了指定在 sourcefile 引數中的檔名。

不論是硬鏈結或軟鏈結都不會將原本的檔案複製乙份,只會占用非常少量的磁碟空間。

引數 :

-f : 鏈結時先將與 dist 同檔名的檔案刪除

-d : 允許系統管理者硬鏈結自己的目錄

-i : 在刪除與 dist 同檔名的檔案時先進行詢問

-n : 在進行軟鏈結時,將 dist 視為一般的檔案

-s : 進行軟鏈結(symbolic link)

-v : 在鏈結之前顯示其檔名

-b : 將在鏈結時會被覆寫或刪除的檔案進行備份

-s suffix : 將備份的檔案都加上 suffix 的字尾

-v method : 指定備份的方式

--help : 顯示輔助說明

--version : 顯示版本

範例 :示例:

1>為了建立到乙個檔案的另乙個鏈結(別名),請輸入:

ln -f file1 file2

這會將 file1 鏈結到新的名稱, file2。如果 file2 不存在,那麼會建立該檔名。如果 file2 已經存在了,那麼這個檔案會被替換為指向file1的乙個鏈結。然後 file1 和 file2 檔名會指向同乙個檔案。對其中任何乙個的更改都會出現在另乙個中。如果乙個檔名被 rm 命令刪除,那麼該檔案並沒有完全被刪除,因為它仍然以其它的名字存在。

2>為了將檔案鏈結為另乙個目錄中的相同名字,請輸入:

ln index dir1

這會將 index 鏈結到新的名稱,dir1/index。

注意:在示例 1 中的 file2 是乙個檔案的名稱;在示例 2 中的 dir1 是乙個已經存在的目錄。

3>為了將幾個檔案鏈結為另乙個目錄中的名稱,請輸入:

ln file2 dir2/file3 /home/dir1

這會將 file2 鏈結到新的名稱 /home/dir1/file2;將 dir2/file3 鏈結到新的名稱 /home/dir1/file3。

4>如果想要在 ln 命令中使用模式匹配字元,請輸入:

ln dir1/* .

這會將 dir1 目錄中的所有檔案鏈結到當前目錄中, . (點),給他們在dir1 目錄中同樣的名稱。

注意: 必須在星號和句點之間輸入乙個空格。

5>為了建立乙個符號鏈結,輸入:

ln -s /tmp/test test

這會在當前的目錄中建立符號鏈結 test。 test 檔案指向 /tmp/test 檔案。如果 /tmp/test 檔案已經存在了,那麼 cat test 命令可以列出其內容。

6>如果想要在不指明 targetfile 引數的情況下得到相同的結果,請輸入:

ln -s /tmp/test

軟連線和硬連線:

linux/unix 檔案系統中,有所謂的鏈結(link),我們可以將其視為檔案的別名,而鏈結又可分為兩種 : 硬鏈結(hard link)與軟鏈結(symbolic link)。

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

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

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

硬連線是直接建立在節點表上的,建立硬連線指向乙個檔案的時候,會更新節點表上面的計數值。舉個例子,乙個檔案被連線了兩次[硬連線],這個檔案的計數值 是3,而無論通過3個檔名中的任何乙個訪問,效果都是完全一樣的,但是如果刪除其中任意乙個,都只是把計數值減1,不會刪除實際的內容的,只有計數值變 成0也就是沒有任何硬連線指向[任何存在的檔案本身就算是乙個硬連線]的時候才會真實的刪除內容。

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

硬鏈結可以認為不是乙個檔案,它只是實際檔案的乙個別名,它的作用是防止真實檔案被誤操作,給乙個檔案建立硬鏈結後,他們互為別名,刪除其中任意乙個,這樣用rm命令只會刪除該別名,實際檔案並不會被刪除。只有鏈結數為0時,才會刪除原始檔案。

硬鏈結的意思是乙個檔案可以有多個名稱,而軟鏈結的方式則是產生乙個特殊的檔案,該檔案的內容是指向另乙個檔案的位置。

4、硬鏈結是存在同乙個檔案系統中,而軟鏈結卻可以跨越不同的檔案系統。

5、硬鏈結的檔案屬主和各種檔案特性都一樣,而軟鏈結不同,軟鏈結可以有不同的讀寫許可權,不同的使用者和組。

6、軟連線的操作:

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

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

硬鏈結的操作:

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

2)、對硬鏈結檔案進行讀寫和刪除操作時候,結果和軟鏈結相同。但如果我們刪除硬鏈結檔案的原始檔,硬鏈結檔案仍然存在,而且保留了願有的內容。這時,系統就"忘記"了它曾經是硬鏈結檔案。而把它當成乙個普通檔案。

linux命令 ln軟連線,硬鏈結

linux 系統中有軟鏈結和硬鏈結兩種特殊的 檔案 1 硬鏈結檔案跟原始檔擁有相同的i inode 節點和儲存block塊,它們可以看作是同乙個檔案。2 可通過i節點進行識別 i節點相同 3 鏈結檔案和原始檔必須在相同的分割槽,不能跨分割槽。3 不能針對目錄建立硬鏈結。這個雖然linux ln命令幫...

ln軟連線和硬連線的區別和聯絡

經常忘,記錄下來備忘 鏈結簡單說實際上是一種檔案共享的方式。連線有軟連線和硬連線 hard link 之分的,軟連線 symbolic link 又叫符號連線,更常用。符號連線相當於windows下的快捷方式。你可以將鏈結簡單地理解為 windows 中常見的快捷方式 或是 os x 中的替身 li...

軟連線和硬連線

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