在本指南中,我將向您展示如何使用ln命令創建和使用符號鏈接。
有兩種類型的鏈接可用:
- 硬鏈接
- 軟鏈接
我之前編寫了一份指南,已經說明了硬鏈接是什麼以及為什麼要使用這些鏈接 ,因此本指南主要關注軟鏈接或符號鏈接,因為它們更為人知。
什麼是硬鏈接
文件系統中的每個文件都由一個稱為inode的數字標識。 大多數時候你不會真正關心這個,但是當你想創建一個硬鏈接時,這個重要性就變得很重要。
通過硬鏈接,您可以為不同位置的文件分配不同的名稱,但本質上它完全是同一個文件。 將文件鏈接在一起的關鍵是inode編號。
硬鏈接的優點是它們不佔用任何物理硬盤空間。
硬鏈接使文件分類更容易。 例如,假設您有一個充滿照片的文件夾。 您可以創建一個名為假日照片的文件夾,另一個文件夾稱為孩子照片,第三個文件夾稱為寵物照片
你可能會有一些適合所有三類的照片,因為它們是與你的孩子和狗在一起度假的。
您可以將主文件放在假日照片照片中,然後在小孩的照片類別中創建該照片的硬鏈接,並在寵物照片類別中創建另一個硬鏈接。 沒有額外的空間被佔用。
您只需輸入以下命令即可創建硬鏈接:
ln / path / to / file / path / to / hardlink
想像一下,假期照片文件夾中有一張名為BrightonBeach的照片,並且您想在孩子的照片文件夾中創建一個鏈接,您可以使用以下命令
ln /holidayphotos/BrightonBeach.jpg /kidsphotos/BrightonBeach.jpg
您可以通過使用ls命令來確定有多少文件鏈接到相同的inode,如下所示:
ls -lt
輸出將類似於-rw-r -r-1用戶名groupname日期文件名。
第一部分顯示用戶的權限。 重要的是權限之後和用戶名之前的數字。
如果數字是1,它是唯一指向特定inode的文件(即它沒有鏈接)。 如果該數字大於1,則它被2個或更多文件難以鏈接。
什麼是符號鏈接
符號鏈接就像是從一個文件到另一個文件的快捷方式。 符號鏈接的內容是鏈接到的實際文件或文件夾的地址。
使用符號鏈接的好處是您可以鏈接到其他分區和其他設備上的文件和文件夾。
硬鏈接和符號鏈接之間的另一個區別是,必須針對已存在的文件創建硬鏈接,而在指向現有文件之前可以創建軟鏈接。
要使用以下語法創建符號鏈接:
ln -s / path / to / file / path / to / link
如果您擔心覆蓋已存在的鏈接,可以使用-b開關,如下所示:
ln -s -b / path / to / file / path / to / link
這將創建一個鏈接的備份,如果它已經存在通過創建相同的文件名,但在結尾處帶有波形符號 (〜)。
如果一個文件已經存在與符號鏈接相同的名稱,您將收到一個錯誤。
您可以使用以下命令強制鏈接覆蓋文件:
ln -s -f / path / to / file / path / to / link
如果沒有-b開關,您可能不想使用-f開關,因為您將丟失原始文件。
另一種方法是收到一條消息,詢問您是否要覆蓋文件,如果該文件已存在。 你可以用下面的命令來做到這一點:
ln -s -i / path / to / file / path / to / link
你如何判斷文件是否是符號鏈接?
運行以下ls命令:
ls -lt
如果文件是符號鏈接,您將看到如下所示的內容:
myshortcut - > myfile
您可以使用符號鏈接導航到另一個文件夾。
例如,假設你有一個鏈接到/ home / music / rock / alicecooper / heystoopid,叫做heystoopid
cd heystoopid
概要
就這樣。 您使用象捷徑這樣的符號鏈接。 它們可以用於縮短真正漫長的路徑,並且可以輕鬆訪問其他分區和驅動器上的文件。
本指南顯示了有關符號鏈接的所有知識,但您可以查看其他交換機的ln命令的手冊頁。