ln :鏈接文件或目錄

語 法:ln[必要參數][選擇參數][源文件或目錄][目標文件或目錄]

功 能:用來鏈接文件或目錄。創建的鏈接分爲兩種:硬鏈接和軟鏈接;硬鏈接相當於創建副本;軟鏈接只是單純的鏈接 

必要參數

-b 刪除,覆蓋以前建立的鏈接
-d 允許超級用戶製作目錄的硬鏈接
-f 強制執行
-i 交互模式,文件存在則提示用戶是否覆蓋
-n 把符號鏈接視爲一般目錄
-s 軟鏈接(符號鏈接)
-v 顯示詳細的處理過程

選擇參數

-S “-S<字尾備份字符串> ”或 “--suffix=<字尾備份字符串>”
-V “-V<備份方式>”或“--version-control=<備份方式>”

--help 顯示幫助信息

--version 顯示版本信息

 (1)什麼是軟鏈接?

軟鏈接是最容易理解的,因爲你很可能已經用到它了。軟鏈接扮演了Windows中快捷方式的角色。簡單說來,軟鏈接就是一個指向另一個文件的文件。當你創建一個軟鏈接的時候,你創建的是一個新文件,而該文件存在的意義只是一個指向系統某處的另一個文件的指針。

所有的鏈接都是用ln命令創建的,如果你要創建軟鏈接就使用-s標誌(如果不使用該標誌,你會得到一個我即將講到的硬鏈接)。該命令的語法是:

ln -s [目標] [鏈接名]

比如,下面這個命令會創建一個指向/usr/bin/firefox的名叫firefox的鏈接(在我的“Desktop”目錄):     ln -s /usr/bin/firefox ~/Desktop/firefox

可以用ls -l命令查看軟鏈接的目標,發現損壞的軟鏈接


(2)什麼是硬鏈接?

軟鏈接是一個指向已有文件的新文件,而硬鏈接是原始鏈接的另一個實例。一張簡圖是解釋這個問題最容易的方式:

 

你可以點擊任意一張圖片以查看更大的版本。這些圖畫所解釋的是:當你創建一個硬鏈接時,你創建的是指向數據位置的另一個指針,而不是指向現有文件的指針。這意味着編輯一個文件的硬鏈接等價於編輯該文件的原始實例。

把這個問題再講透徹一點:一個軟鏈接是一個指向已有文件的快捷方式,而一個硬鏈接是磁盤上某個位置的引用(或者更準確的說,文件系統中的某個位置)。這意味着快捷方式的概念,指向另一個文件的鏈接,對於硬鏈接來說是沒有意義的。而有意義的則是詢問磁盤上一個指定的位置有多少個引用存在(一個文件存在多少個硬鏈接),你可以通過運行‘stat’命令來看到:

(3)什麼時候使用軟鏈接
     硬鏈接有兩個侷限。在這些情況下你必須使用軟鏈接:

  1. 跨文件系統的鏈接

    因爲硬鏈接是底層文件系統的直接引用,你不能跨文件系統建立硬鏈接。

  2. 鏈接到一個目錄

    你不能用硬鏈接來鏈接到一個目錄。 

在上述的兩種情況中,你必須使用軟鏈接,因爲很簡單,硬鏈接做不了這個室。在另外一些情況下,雖然硬鏈接也行,但軟鏈接要比硬鏈接更好。比如,當你想要創建一個快捷方式,尤其是快捷方式的目標以後可能會改變的情況下,你很可能會選用軟鏈接。舉個例子,你有一個應用程序的beta版的啓動器,你可能希望使用軟鏈接,這樣你就可以很容易地在各個版本之間改變目標。
 

在其他的大多數情況中(創建一個鏈接到同一個文件系統的文件時),硬鏈接應當是首選,基於以下原因:

  1. 性能

    使用硬鏈接可以得到少量的性能提升。這是由於硬鏈接是一個磁盤位置的引用而不是一個指向另一個文件的文件(指向你所需要的真實磁盤位置),硬鏈接所涉及到的磁盤尋道動作要少一次。

  2. 存儲空間

    硬鏈接不佔用額外的空間,因爲它只是一個簡單的指向已有磁盤空間的引用。而創建軟鏈接是創建一個新文件,會消耗掉你文件系統上的少量空間(通常是4KB)。

    另外,硬鏈接更好的一個原因是軟鏈接很容易丟失一個文件的‘主’實例(所有軟鏈接指向的那個文件)。如果原始文件刪除了,那麼所有的軟鏈接都將變成無效的。而使用硬鏈接的話,你可以刪除任意一個實例,包括原始實例。只要還有一個實例存在,該文件就存在於系統中。

引用鏈接:http://techthrob.com/2010/09/26/softlinks-vs-hardlinks-a-quick-explanation/

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