歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> linux 創建連接命令 ln -s 軟鏈接

linux 創建連接命令 ln -s 軟鏈接

日期:2017/3/2 17:16:10   编辑:Linux基礎知識
這是linux中一個非常重要命令,請大家一定要熟悉。它的功能是為某一個文件在另外一個位置建立一個同不的鏈接,這個命令最常用的參數是-s,
具體用法是:ln -s 源文件 目標文件。
當 我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在其它的 目錄下用ln命令鏈接(link)它就可以,不必重復的占用磁盤空間。例如:ln -s /bin/less /usr/local/bin/less
-s 是代號(symbolic)的意思。
這 裡有兩點要注意:第一,ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化;第二,ln的鏈接又軟鏈接 和硬鏈接兩種,軟鏈接就是ln -s ** **,它只會在你選定的位置上生成一個文件的鏡像,不會占用磁盤空間,硬鏈接ln ** **,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。


不論是硬連結或軟鏈結都不會將原本的檔案復制一份,只會占用非常少量的磁碟空間。
  -f : 鏈結時先將與 dist 同檔名的檔案刪除
  -d : 允許系統管理者硬鏈結自己的目錄
  -i : 在刪除與 dist 同檔名的檔案時先進行詢問
  -n : 在進行軟連結時,將 dist 視為一般的檔案
  -s : 進行軟鏈結(symbolic link)
  -v : 在連結之前顯示其檔名
  -b : 將在鏈結時會被覆寫或刪除的檔案進行備份
  -S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾
  -V METHOD : 指定備份的方式
  --help : 顯示輔助說明
  --version : 顯示版本

【硬連接】
硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。

【軟連接】
另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。

2.通過實驗加深理解
[oracle@Linux]$ vi test.log #創建一個測試文件f1
[oracle@Linux]$ ln test.log test1.log #創建f1的一個硬連接文件test1.log
[oracle@Linux]$ ln -s test.log test2.log #創建f1的一個符號連接文件test2.log
[oracle@Linux]$ ls -li # -i參數顯示文件的inode節點信息

兩種鏈接的區別:

硬鏈接文件有兩個限制
   1)、不允許給目錄創建硬鏈接;
   2)、只有在同一文件系統中的文件之間才能創建鏈接,而且只有超級用戶才有建立硬鏈接權限。
   對硬鏈接文件進行讀寫和刪除操作時候,結果和軟鏈接相同。但如果我們刪除硬鏈接文件的源文件,硬鏈接文件仍然存在,而且保留了願有的內容。

這時,系統就“忘記”了它曾經是硬鏈接文件。而把他當成一個普通文件。

那麼我們就可以這樣理解:硬連接指通過索引節點來進行的連接,其作用是允許一個文件擁有多個有效路徑名,能夠達到誤刪除的作用。

其原因是因為對應的文件的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它

的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接才會被釋放。文件才會被真正刪除。

注:保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index即I節點)。

軟鏈接沒有硬鏈接以上的兩個限制,因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對文件進行鏈接。但是軟鏈接的缺點在於:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。

Copyright © Linux教程網 All Rights Reserved