ln (Unix)

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

ln 是用來為文件創建鏈接的標準 Unix 命令

鏈接文件

通過鏈接文件,不同的文件名可以指向同一個文件。

ln 可以創建兩種類型的鏈接文件:

  1. 符號鏈接,也稱軟鏈接,這是指向另一個不同路徑文件的一個符號路徑。
  2. 硬鏈接,這是一個存儲了鏈接建立時它所指向文件的實際數據的文件副本。

參數

  • 源文件:指定鏈接的源文件。如果使用-s選項創建符號鏈接,則「源文件」可以是文件或者目錄。創建硬鏈接時,則「源文件」參數只能是文件;
  • 目標文件:指定源文件的目標鏈接文件。

從以下命令示例可看出兩種鏈接文件的區別:

$ echo '文件内容' > oringinal.file
$ ln oringinal.file hardlink.file
$ ln -s oringinal.file softlink.file
$ cat softlink.file
文件内容
$ rm oringinal.file
$ cat softlink.file
cat: softlink.file: 没有那个文件或目录
$ cat hardlink.file
文件内容

原始文件被刪除後,符號鏈接將失效,訪問軟鏈接時,會提示找不到文件,但硬鏈接文件還在,而且還保存有原始文件的內容。按照inode的設計理論,硬鏈接的文件和原始文件對應相同的inode號,共享同一個數據儲存區,而符號鏈接是一個獨立的特殊文件,有自己的文件inode號,而內容為指向原始文件的路徑。

規範

單一Unix規範(SUS)規定了創建一個原始文件(或目錄)的鏈接(不管是符號鏈接還是硬鏈接)文件時的行為。

ln 可以用兩種方式使用。第一種,是第一個參數指定原始文件,第二個參數指定鏈接文件;第二種,指定多於兩個選項,應該先是多個原始文件(或目錄),最後指定一個目錄,所有原始文件(或目錄)的鏈接將會被創建於最後指定的目錄里。在後一種方式中,ln 命令的行為和具體的程序實現有關。

ln 和標準的 unlink()link() 函數執行完全一致的操作,詳細的 ln 命令用法,可以執行以下兩個命令查詢:

 $ man ln
 $ ln --help

參見

外部連結

手冊頁