SHELL ln 命令詳解

2021-05-28 10:55:57 字數 2250 閱讀 3227

鏈結有兩種,一種被稱為硬鏈結(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

iptable 詳解 iptable命令詳解1

p protocal protocol 協議 j jump target i in inte ce name 入口 o out inte ce name 出口 f,fragment 分片 指定 p tcp時 source port port port 原埠 也作 sport destionation...

UNIX crontab命令詳解

crontab命令的功能是在一定的時間間隔排程一些命令的執行。在 etc目錄下有乙個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。crontab命令有三種形式的命令列結構 crontab u user file crontab u user e l...

mount命令詳解

名稱 mount 使用許可權 系統管理者或 etc fstab中允許的使用者 使用方式 mount hv mount a ffnrsvw t vfstype mount fnrsvw o options device dir mount fnrsvw t vfstype o options devi...