Linux ln 命令語法

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

文件

/usr/bin/ln 包含了 ln 命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章