回覆列表
  • 1 # 使用者9416381105893

    ln 命令

    用途 : 連結檔案。

    語法

    1>將某個檔案連結到一個檔案上

    ln [ -f | -n] [ -s ] SourceFile [ TargetFile ]

    2>將一個或多個檔案連結到一個目錄上

    ln [ -f | -n] [ -s ] SourceFile … TargetDirectory

    描述

    ln 命令將在 SourceFile 引數中指定的檔案連結到在 TargetFile 引數中指定的檔案,或將其連結到在 TargetDirectory 引數中指定的另一個目錄中的檔案。

    在預設情況下,ln 命令會建立硬連結。如果需要使用 ln 命令來建立符號連結,請指明 -s 標誌。

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

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

    TargetFile 引數是可選的。

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

    注意:

    如果不使用 -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 出現一次錯誤。

    示例

    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

  • 中秋節和大豐收的關聯?
  • 關於“甄姬”的詩句有哪些?