linux ln 命令詳解與範例

2021-08-25 20:13:10 字數 2231 閱讀 8196

鏈結有兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic link)。建立硬鏈結時,鏈結檔案和被鏈結檔案必須位於同乙個檔案系統中,並且不能建立指向目錄的硬鏈結。而對符號鏈結,則不存在這個問題。預設情況下,ln產生硬鏈結。

ln 命令

用途鏈結檔案。

語法將某個檔案鏈結到乙個檔案上

ln [ -f | -n] [ -s ] sourcefile [ targetfile ]

將乙個或多個檔案鏈結到乙個目錄上

ln [ -f | -n] [ -s ] sourcefile ... targetdirectory

描述ln 命令將在 sourcefile 引數中指定的檔案鏈結到在 targetfile 引數中指定的檔案,或將其鏈結到在 targetdirectory 引數中指定的另乙個目錄中的檔案。在預設情況下,ln 命令會建立硬鏈結。如果需要使用 ln 命令來建立符號鏈結,請指明 -s 標誌。

符號鏈結是指向檔案的乙個間接指標;它的目錄項中包含了它所鏈結的檔名。符號鏈結可能會跨越檔案系統,可能指向目錄。

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

targetfile 引數是可選的。如果不指定目標檔案,ln 命令會在當前的目錄中建立乙個新的檔案。新的檔案繼承了指定在 sourcefile 引數中的檔名。請參閱示例 5。

注意:如果不使用 -s 標誌,就不能在檔案系統之間鏈結檔案。

如果 targetdirectory 已經是鏈結到目錄上的乙個符號鏈結,那麼 ln 命令將現有的目標視為檔案。這意味著,類似於 ln -fs somepath/lname symdir 的命令不會遵循現有的 symdir 符號鏈結,作為代替,它會建立乙個從 somepath/lname 到 symdir 的新的符號鏈結。

標誌-f 促使 ln 命令替換掉任何已經存在的目的路徑。如果目的路徑已經存在,而沒有指定 -f 標誌,ln 命令不會建立新的鏈結,而是向標準錯誤寫一條診斷訊息並繼續鏈結剩下的 sourcefiles。

-n 指定,如果鏈結是乙個現有的檔案,那麼不要覆蓋檔案的內容。 -f 標誌重設了這個標誌。這是預設的行為。

-s 促使 ln 命令建立符號鏈結。符號鏈結中包含了它所鏈結的檔案的名字。當對鏈結執行開啟操作的時候,會使用到引用檔案。對符號鏈結的 stat 呼叫會返回鏈結的目標檔案;必須完成lstat 呼叫來獲取鏈結的資訊。可以使用 readlink 呼叫來讀取符號鏈結的內容。符號鏈結可能跨越檔案系統,指向目錄。

注意:當為 -s 標誌指定 sourcefile 引數的時候,必須使用絕對路徑。如果沒有指明絕對路徑,那麼當 sourcefile 和 targetfile 引數位於不同的目錄中的時候,可能會發生意外的結果。在建立符號鏈結之前,不需要存在原始檔。

退出狀態

此命令返回以下的退出值:

0 所有指定的檔案都成功鏈結上了。

>0 出現一次錯誤。

示例ln -f chap1 intro

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

ln index manual

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

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

ln chap2 jim/chap3 /home/manual

這會將 chap2 鏈結到新的名稱 /home/manual/chap2;將 jim/chap3 鏈結到新的名稱 /home/manual/chap3。

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

n manual/* .

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

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

ln -s /tmp/toc toc

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

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

、ln -s /tmp/toc

Linux ln 命令詳解

指令名稱 ln 使用許可權 所有使用者 使用方式 ln options source dist,其中 option 的格式為 bdfinsvf s backup suffix v help version 硬鏈結的意思是乙個檔案可以有多個名稱,而軟鏈結的方式則是產生乙個特殊的檔案,該檔案的內容是指向...

linux ln命令詳解

ln是 linux中乙個非常重要命令。它的功能是為某乙個檔案在另外乙個位置建立乙個同步的鏈結,這個命令最常用的引數是 s,具體用法是 ln s 原始檔 目標檔案 s 是 symbolic的意思。例 ln s lib lsb usr lj 即 在usr目錄下建立指向 lib lsb目錄的lj檔案。當我...

linux ln命令詳解

ln是 linux中乙個非常重要命令。它的功能是為某乙個檔案在另外乙個位置建立乙個同步的鏈結,這個命令最常用的引數是 s,具體用法是 ln s 原始檔 目標檔案 s 是 symbolic的意思。例 ln s lib lsb usr lj 即 在usr目錄下建立指向 lib lsb目錄的lj檔案。當我...