當前位置:首頁 » 操作系統 » linux硬連接軟連接

linux硬連接軟連接

發布時間: 2023-10-26 23:31:29

Ⅰ 硬鏈接和符號鏈接

Linux 鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln 命令產生硬鏈接。

通俗一點理解,可以把硬鏈接當成源文件的副本,他和源文件一樣的大小但是事實上卻不佔任何空間。
符號鏈接可以理解為類似 windows 一樣的快捷方式。

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

硬鏈接文件有兩個限制

對於硬鏈接文件進行讀寫和刪除操作的時候,結果和符號鏈接相同。但是如果我們刪除硬鏈接文件的源文件,運滲硬鏈接文件仍存在,而且保留了原有的內容。

另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似於 Windows 的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,這個文件包含了另一個文件的路徑名。
可以是任意文件或目錄,也可以鏈接不同文件系統的文件。甚至可以鏈接不存在的文件,這就產生一般稱為「斷裂」的問題(現象),還可以不斷的循環鏈接自己。
在對符號鏈接進行讀寫操作的時候,系統會自動把該操作轉換為對源文件的操作。但是刪除鏈接文件時,系統僅僅刪除符號鏈接文件,而不刪除源文件本身。

從上面的結果中可以看出,硬連接文件 f2 與原文件 f1 的 inode 節點相同,均為 7722708,然而符號連接文件的 inode 節點不同。

通過上面的測試可以看出:當刪除原始文件 f1 後,硬連接 f2 不受影響,但是符號連接 f1 文件無效旁高脊

符號鏈接(symbolic link)在建立的時候建立了一個新的 inode,並記錄了指向源文件 inode 的路徑。所以 symbolic 的 inode number 跟原始檔案的 inode number 是不一樣的。這也是為什麼 symbolic link 能夠跨越不同文件系統的原因。
符號鏈接建立了新的 inode number,所以它是一個真實的文件並佔有一定的磁碟空間。另外對 symbolic link 的操作除了刪除都會直接對源文件進行操作念拆。

hard link 的 inode number 跟源文件的 inode number 是一樣的。因為一個文件系統有著相同的 inode number,所以 hard link 是不可以跨文件系統創建的。也可以將 hard link 理解為不是一個文件,把它看成是同一個 inode 的別名,建立 hard link 後他和源文件互為別名,刪除其中任何一個,inode 都不會釋放。只有指向同一 inode 的文件名都刪除後,inode 才釋放。hard link 實際上是不佔空間的。

Ⅱ Linux中硬鏈接和軟鏈接的區別與聯系!

鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。在Linux操作系統中,鏈接被分為兩種:軟鏈接(SoftLink,符號鏈接)和硬鏈接(HardLink)。那麼什麼是軟鏈接?什麼是硬鏈接?Linux中軟鏈接和硬鏈接之間有什麼區別和聯系?以下是詳細的內容介紹。

為解決文件的共享使用,Linux系統引入了兩種鏈接:硬鏈接和軟鏈接。在Linux中,元數據中的inode號才是文件的唯一標識而非文件名,文件內容要通過inode號來尋找,猶如交通指示牌一樣,指示著數據找尋的方向。

硬鏈接(Hard Link)

A和B的硬鏈接,則慧汪純A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。如果刪除其中一個,對另外一個沒有任何影響。每增加一個文件名,inode節點上的鏈接數增加一,每刪除一個對應的文件名,inode節點上的鏈接數減一,直到為0,inode節點和對應的數據塊被回收。

註:文件和文件名是不同的東西,rm A刪除的只是A這個文件名,而A對應的數據塊只有在inode節點鏈接數減少為0的時候才會被系統回收。

軟鏈接(Soft Link)

A是B的軟鏈接,A的目錄項中的inode節點號與B的目錄項中的節點號不相同,A和B指向的是兩個不陵悶同的inode,繼而指向兩塊不同的數據塊。但是A的數據塊中存放的只是B的路徑名。A和B之間是主從關系,如果B被刪除了,A依然存在,但指向的是一個無效的鏈接。

Linux中軟鏈接和硬鏈接之間有什麼區別和聯系?

概念不同:

軟鏈接可以理解成快捷方式,和原文件的inode號不一樣,它和Windows下的快捷方式的作用是一樣的,軟鏈接數據塊中記錄的亦是相對路徑指向。

硬鏈接和原文件對應一個inode,就是對應一個文件,可以理解成一個文件有幾個別名。

用法不同:

軟鏈接可以理解成快捷方式,也清楚知道原文件在哪裡。它和Windows下的快捷方式前咐的作用是一樣的,和Windows一樣,刪除源文件,快捷方式也就無法使用了。

硬鏈接可以看成一個備份,但並沒有增加空間,因為文件就一個,這種可以防止源文件刪除後不能使用問題;同時也有局限性,不能對目錄和跨文件系統使用。

語法格式(ln):

硬鏈接:ln 源文件 鏈接名

軟鏈接:ln -s 源文件 鏈接名

注意:鏈接的源文件路徑要寫絕對路徑,否則會報錯。

熱點內容
C語言cast 發布:2024-11-30 15:34:39 瀏覽:982
查看資料庫事務 發布:2024-11-30 15:29:34 瀏覽:56
python無線 發布:2024-11-30 15:24:49 瀏覽:359
安卓手機怎麼下符文之地 發布:2024-11-30 14:49:28 瀏覽:878
安卓ota在哪裡打開 發布:2024-11-30 14:46:55 瀏覽:102
mapreduce演算法 發布:2024-11-30 14:46:50 瀏覽:16
python的shell 發布:2024-11-30 14:46:49 瀏覽:730
變頻器什麼時候配置電抗器 發布:2024-11-30 14:46:37 瀏覽:700
官方版我的世界登錄網易伺服器 發布:2024-11-30 14:38:37 瀏覽:113
安卓手機沒電會出現什麼問題 發布:2024-11-30 14:37:31 瀏覽:984