Linux系統:那些常見的硬連結和軟連結

在Linux系統中,有些常見的硬連線和軟連線,你知道嗎?今天就帶大家來認識一下!先從Linux系統中的檔案系統說起。

1。 在Linux中一切皆為檔案

在Linux中有且只有一個根目錄,它就是 / (斜槓),它的子目錄有如下這些:

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

下面我們來解釋一些比較重要目錄的各自意義:

bin:表示二進位制檔案,包含了會被所有使用者使用的可執行程式

因bin目錄下的子目錄過多,這裡只擷取一部分展示)

[hduser@localhost bin]$ ls[

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

boot:表示啟動檔案的意思,包含了與Linux系統啟動相關的檔案

Linux系統:那些常見的硬連結和軟連結

dev:表示裝置目錄(包含外設),它的每一個子目錄都對應一個外設

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

etc:表示配置檔案,包含系統的配置檔案

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

home:表示使用者的私人目錄

[hduser@localhost home]$ lshduser yzp

lib: 表示庫檔案目錄 ,包含了所有對系統有用的庫檔案

Linux系統:那些常見的硬連結和軟連結

media:表示移動外設(如:USB、光碟等)目錄,我們可以透過media的子目錄來訪問這些裝置

mnt:此目錄用於臨時載入一些裝置

opt:用於安裝第三方軟體和外掛的目錄

root:表示超級使用者的家目錄

proc:存放的是虛擬檔案系統的目錄

sbin:包含系統級的可執行程式目錄

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

Linux系統:那些常見的硬連結和軟連結

srv:此目錄包含一些網路服務啟動後所需的資料

tmp:普通使用者和程式存放臨時檔案的地方

Linux系統:那些常見的硬連結和軟連結

usr:是儲存Unix作業系統軟體資源的目錄

[hduser@localhost usr]$ lsbin etc games include lib lib64 libexec local sbin share src tmp

我們用一張圖來總結一下根目錄下各檔案的含義

Linux系統:那些常見的硬連結和軟連結

二、硬連結和軟連結:

1。 連結型別

類別:硬連結和軟連結

2。 首先我們先來了解一下什麼是inode?

在linux系統中,檔案的檔案內容會被分配到一個標誌號碼,這個標誌號碼就是inode,它是檔案的索引節點

linux檔案系統中有一塊區域叫做inode table,它就是儲存inode的地方

inode儲存著檔案的元資訊,其內容包括:檔案型別、檔案許可權、檔案物理地址、檔案長度、檔案連線計數、檔案存取時間、索引節點編號 、檔案狀態、訪問計數、連結指標

Linux系統中,每個檔名都繫結到它的檔案內容並用檔案內容的inode標識,檔名並不是檔案的唯一標識,Inode才是檔案的唯一標識

3。 硬連結原理

硬連結:使有連結關係的兩個檔案共享同樣的檔案內容,擁有同樣的inode, 缺陷是隻能建立指向檔案的硬連結,不能指向目錄

Linux系統:那些常見的硬連結和軟連結

4。 軟連結原理

軟連結:有軟連結關係的兩個檔案,它們的inode是不同的,它可以指向目錄,軟連結才真正像我們在windows下的快捷方式

Linux系統:那些常見的硬連結和軟連結

三、ln命令

1。 作用:用於在檔案之間建立連結,ln是link(“連結”)的縮寫

2。 建立硬連結

ln a。txt b。txt

Linux系統:那些常見的硬連結和軟連結

注:數字2代表有相同inode號的檔案數

檢視檔案的inode

ls -i (i引數可以顯示檔案的inode)

Linux系統:那些常見的硬連結和軟連結

我們可以看到 a.txt和b.txt 檔案的inode是一樣的,說明它們指向的是同一個檔案內容

我們刪除a。txt檔案,對b。txt檔案來說,看會發生什麼情況

lsrm a。txtlscat b。txtls -i

Linux系統:那些常見的硬連結和軟連結

我們用rm刪除了a。txt檔案, 可以看到對於b。txt檔案沒有任何影響,它的inode也沒有改變

說明了對於硬連結來說,刪除任意一方的檔案,它們共同指向的檔案內容並不會從硬碟上刪除,只有同時把他們都刪除掉,它們共同指向的檔案內容才會消失,也就是那個inode才會被刪除

3。 建立軟連結

ln -s file1。txt file2。txt

Linux系統:那些常見的硬連結和軟連結

f

ile2。txt -> file1。txt 表示檔案file2指向file1, lrwxrwxrwx中的 l 表示file2。txt檔案是一個軟連結檔案

檢視檔案的inode

ls -i

Linux系統:那些常見的硬連結和軟連結

我們可以看出檔案file1和檔案file2的inode是不同的

這是因為檔案file2是指向檔案file1的,它們並沒有指向同一塊檔案內容,所以它們的inode號不相同

file2其實只是file1的一個快捷方式,它指向的是file1,所以顯示的是file1的內容

我們刪除file1。txt對於file2。txt會有什麼影響?

如果我們刪除了file2,那麼對於file1來說不會有任何影響,如果刪除file1,那麼file2就會變成“死連結”,

這是因為file2指向的檔案沒有了

rm file1。txtls -lh

Linux系統:那些常見的硬連結和軟連結