詳解Linux操作系統(tǒng)中軟硬鏈接的區(qū)別
對于那些學(xué)習(xí)Linux操作系統(tǒng)的用戶,也許經(jīng)常會(huì)看到軟鏈接,硬鏈接這兩個(gè)詞,不過你了解這兩者之間的區(qū)別么?本文為你講解Linux操作系統(tǒng)軟硬鏈接的區(qū)別。
軟硬鏈接的區(qū)別
(1)軟連接可以 跨文件系統(tǒng) ,硬連接不可以 。實(shí)踐的方法就是用共享文件把windows下的 aa.txt文本文檔連接到Linux下/root目錄 下 bb,cc . ln -s aa.txt /root/bb 連接成功 。ln aa.txt /root/bb 失敗 。
(2)關(guān)于 I節(jié)點(diǎn)的問題 。硬連接不管有多少個(gè),都指向的是同一個(gè)I節(jié)點(diǎn),會(huì)把 結(jié)點(diǎn)連接數(shù)增加,只要結(jié)點(diǎn)的連接數(shù)不是 0,文件就一直存在 ,不管你刪除的是源文件還是連接的文件。只 要有一個(gè)存在,文件就 存在(其實(shí)也不分什么 源文件連接文件的 ,因?yàn)樗麄冎赶蚨际峭粋€(gè) I節(jié)點(diǎn))。 當(dāng)你修改源文件或者連接文件任何一個(gè)的時(shí)候,其他的 文件都會(huì)做同步的修 改 。軟鏈接不直接使用i節(jié)點(diǎn)號作為文件指針, 而是使用文件路徑名作為指針。所以刪除連接文件對源文件無影響,但是刪除源文件,連接文件就會(huì)找不到要指向的文件。軟鏈接有自 己的inode, 并在磁盤上有一小片空間存放路徑名。
(3)軟連接可以對一個(gè)不存在的文件名進(jìn)行連接 。
(4)軟連接可以對目錄進(jìn)行連接。
備注:I節(jié)點(diǎn) :它是UNIX內(nèi)部用于描述文件特性的數(shù)據(jù)結(jié)構(gòu)。我們通常稱I節(jié)點(diǎn)為文件索引結(jié)點(diǎn)(信息結(jié)點(diǎn))。i節(jié)點(diǎn)含有關(guān)于文件的大部分的重要信 息,包括文件數(shù)據(jù)塊在磁盤上的地址。每一 個(gè)I節(jié)點(diǎn)有它自己的標(biāo)志號,我們稱為文件順序號。I節(jié)點(diǎn)包含的信息 :1.文件類型 2.文件屬主關(guān)系 3.文件的訪問權(quán)限 4.文件的時(shí)間截 。
硬連接指通過索引節(jié)點(diǎn)來進(jìn)行的連接。在Linux的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號,稱為索引節(jié)點(diǎn)號(Inode Index )。在Linux中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。一般這種連接就是硬連接。
硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要的文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)***一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放。也就是說,文件才會(huì)被真正刪除。
軟鏈接文件有點(diǎn)類似于Windows的快捷方式。它實(shí)際上是特殊文件的一種。在符號連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。
軟鏈接是另一個(gè)文件,作用可以理解為一個(gè)指針,作用在這個(gè)文件上的操作除了刪除都直接轉(zhuǎn)向?qū)嶋H指向文件,由于是一個(gè)真實(shí)的文件所以占用磁盤空間 。硬鏈接可以認(rèn)為不是一個(gè)文件,它只是實(shí)際文件的一個(gè)別名,它的作用是防止真實(shí)文件被誤操作,給一個(gè)文件建立硬鏈接后,他們互為別名,刪除其中任一個(gè),只會(huì)刪除該別名,實(shí)際文件并不會(huì)被刪除。由于只是別名沒有任何其他信息,所以并不占用原始文件大小的磁盤空間。
了解Linux操作系統(tǒng)軟硬鏈接的區(qū)別,學(xué)好Linux操作系統(tǒng)。
【編輯推薦】




















