ln s Linux建立軟連線硬鏈結

2021-09-04 13:12:55 字數 2267 閱讀 4363

它的功能是為某乙個檔案在另外乙個位置建立乙個同不的鏈結,這個命令最常用的引數是-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節點)。          

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

軟連線,硬連線

首先要弄清楚,在linux 下面舉一些例子 ls il 13058 rwx 1 longcheng longcheng 48 8月 5 16 38 file1 13059 rwx 1 longcheng longcheng 57 8月 5 16 40 file2 ln file2 file2hard...

硬連線 軟連線

硬鏈結 系統呼叫link在檔案系統結構中將乙個檔案鏈結到另外乙個新的名字上,也就是為被鏈結檔案的索引節點建立乙個新的目錄項。通過鏈結操作,乙個檔案可以有兩個以上的不同名字,系統可以通過其中任意乙個名字來訪問檔案。核心並不知道哪個名字是最初的檔名。這種為索引節點建立新目錄項的鏈結方式稱為 硬鏈結 乙個...

軟連線與硬連線

要弄清楚2者的區別,首先得明白linux系統中檔案是如何儲存的.在linux中儲存乙個檔案由3部分組成 檔名 inode block 資料塊 關於inode block用來儲存資料.而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小,歸屬的使用者組,讀寫許可權等.inode為每個檔案進...