liunx之ln命令 鏈接

ln是一個(gè)非常有用而且重要的命令。當(dāng)我們需要在不同的目錄用到相同的文件時(shí),并不需要在每一個(gè)需要的目錄下都放一個(gè)必須相同的文件,而只要在某個(gè)固定的目錄放上該文件,然后在其它目錄下用ln命令鏈接(link)它就可以,不必重復(fù)的占用磁盤空間。

用法:

  • ln [-Ffhinsv] source_file [target_file]
    
  • ln [-Ffhinsv] source_file ... target_dir
    
  • link source_file target_file
    

選項(xiàng)

  • -F 如果目標(biāo)文件已存在并且是目錄,則將其刪除創(chuàng)建鏈接。 -F選項(xiàng)應(yīng)與-f或-i選項(xiàng)一起使用。 如果未指定,則隱含-f。 除非指定-s選項(xiàng),否則-F選項(xiàng)是無(wú)效。
  • -h 如果target_file或target_dir是符號(hào)鏈接,則不創(chuàng)建。 這對(duì)于-f選項(xiàng)用于替換可能指向目錄的符號(hào)鏈接最有用。
  • -f 如果目標(biāo)文件已存在,則將其刪除創(chuàng)建新鏈接。 (-f選項(xiàng)會(huì)覆蓋前面的-i選項(xiàng))
  • -i 如果target已存在,則詢問(wèn)是否刪除并創(chuàng)建鏈接。(-i選項(xiàng)會(huì)覆蓋前面的-f選項(xiàng))
  • -n 與-h選項(xiàng)相同
  • -s 創(chuàng)建符號(hào)鏈接(軟鏈接)
  • -v 顯示詳細(xì)信息

默認(rèn)創(chuàng)建的鏈接是硬鏈接,硬鏈接通常不用于目錄,不能跨文件系統(tǒng)。
如果只指定一個(gè)參數(shù),則該參數(shù)為source,當(dāng)前目錄為target。
如果指定兩個(gè)以上參數(shù),則最后一個(gè)參數(shù)為target。
如果為命令或應(yīng)用程序建立鏈接,則不能使用目錄作為source。

補(bǔ)充說(shuō)明:

  1. ln命令會(huì)保持每一處鏈接文件的同步性,也就是不論你改動(dòng)了哪一處,其它的文件都會(huì)發(fā)生相同的變化;
  2. ln的鏈接又軟鏈接和硬鏈接兩種,軟鏈接只會(huì)在你選定的位置上生成一個(gè)文件的鏡像,不會(huì)占用磁盤空間,而硬鏈接會(huì)在你選定的位置上生成一個(gè)和源文件大小相同的文件;
  3. 無(wú)論是軟鏈接還是硬鏈接,文件都保持同步變化。
  4. 不論是硬連結(jié)或軟鏈結(jié)都不會(huì)將原本的檔案復(fù)制一份,只會(huì)占用非常少量的磁碟空間。

【硬連接】硬連接指通過(guò)索引節(jié)點(diǎn)來(lái)進(jìn)行連接。在Linux的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)(Inode Index)。在Linux中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?duì)應(yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放。也就是說(shuō),文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。

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

軟鏈接與硬鏈接的區(qū)別:
硬鏈接文件有兩個(gè)限制
1)、不允許給目錄創(chuàng)建硬鏈接;
2)、只有在同一文件系統(tǒng)中的文件之間才能創(chuàng)建鏈接,而且只有超級(jí)用戶才有建立硬鏈接權(quán)限。
對(duì)硬鏈接文件進(jìn)行讀寫和刪除操作時(shí)候,結(jié)果和軟鏈接相同。但如果我們刪除硬鏈接文件的源文件,硬鏈接文件仍然存在,而且保留了原有的內(nèi)容。這主要是因?yàn)橛策B接指通過(guò)索引節(jié)點(diǎn)來(lái)進(jìn)行的連接,其作用是允許一個(gè)文件擁有多個(gè)有效路徑名,能夠達(dá)到誤刪除的作用。其原因是因?yàn)閷?duì)應(yīng)的文件的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放,這時(shí)文件才會(huì)被真正刪除。
軟鏈接沒(méi)有硬鏈接以上的兩個(gè)限制,因而現(xiàn)在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機(jī)器、不同網(wǎng)絡(luò)對(duì)文件進(jìn)行鏈接。但是軟鏈接的缺點(diǎn)在于:因?yàn)殒溄游募性募穆窂叫畔ⅲ援?dāng)原文件從一個(gè)目錄下移到其他目錄中,再訪問(wèn)鏈接文件,系統(tǒng)就找不到了,而硬鏈接就沒(méi)有這個(gè)缺陷,你想怎么移就怎么移;還有它要系統(tǒng)分配額外的空間用于建立新的索引節(jié)點(diǎn)和保存原文件的路徑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容