网站黄色在线观看视频,男人和女人操逼有免费的视频吗2018高清,91熟女丨老女人丨高潮丰满,丝袜高潮流白浆潮喷在线播放

中國站

中國站

國際版

聯(lián)系我們

400-002-9968

售前咨詢

售后服務(wù)

注冊 登錄

博客 > Linux 知識:Linux 中的硬鏈接和符號鏈接

Linux 知識:Linux 中的硬鏈接和符號鏈接

  • 標(biāo)簽:
  • Linux
  • 硬鏈接
  • 軟鏈接
  • 符號鏈接

瀏覽量:1337次評論:0次

作者:銳成網(wǎng)絡(luò)整理時間:2024-07-22 17:38:10

類似 Windows 系統(tǒng)中的快捷方式,在 Linux 系統(tǒng)中它們叫鏈接,存在兩種形式 ,一種是硬鏈接,一種是符號鏈接。通常,符號鏈接也被稱為軟鏈接,下面我們就介紹一下這兩種鏈接。

Linux 知識:Linux 中的硬鏈接和符號鏈接

一、硬鏈接

由于 Linux 下的文件是通過索引節(jié)點(Inode)來識別文件,在 Linux 的文件系統(tǒng) 中,保存在磁盤分區(qū)中的文件不管是什么類型都會給它分配一個編號,稱為索引節(jié)點號。硬鏈接就是指向同一個索引節(jié)點 inode 的鏈接,而一個 inode 節(jié)點可以存在任意數(shù)目的硬鏈接。在刪除硬鏈接時,inode 節(jié)點上的數(shù)據(jù)并不會被刪除。所以,要刪除存在硬鏈接的文件的數(shù)據(jù),除了刪除文件本身,還必須刪除該文件所有的硬鏈接。

舉例說明:

首先我們通過 touch命令 來創(chuàng)建一個文件 a.txt,然后通過 ln命令 創(chuàng)建 a.txt 的硬鏈接 a-link.txt,之后通過 ls命令 查看這兩個文件的 inode 值,你會發(fā)現(xiàn)其 inode 值是一樣的,命令如下:

[root@localhost~]# touch a.txt

[root@localhost~]# ln a.txt a-link.txt

[root@localhost~]# ls -i a.txt a-link.txt

ls -li 命令執(zhí)行后,你會看到如下內(nèi)容:

400746 -rw-r--r-- 2 root root        0 6月  18 06:47 a-link.txt

400746 -rw-r--r-- 2 root root        0 6月  18 06:47 a.txt

第一列 400746 就是 inode 值,兩個文件的 inode 值是一致的,第三列是該文件存在的硬鏈接數(shù),可以看到 a.txt 和 a-link.txt 顯示都是 2。這里需要注意,在 Linux 系統(tǒng)中硬鏈接和源文件是無法區(qū)別的,兩個文件具有相同的大小、創(chuàng)建時間等信息。其實它們就是擁有相同 inode 的文件,可以看成就是同一個文件,只是文件名不同。這時候我們刪掉文件 a.txt,看一下 inode 值是否依舊存在:

[root@localhost~]# rm a.txt

[root@localhost~]# ls -i a-link.txt

輸出結(jié)果:

400746 a-link.txt

這時我們會看到,硬鏈接文件指向的 inode 值沒有變化,依舊是400746。即便刪除原來的 a.txt,也不會引起該文件指向的 inode 值發(fā)生變化。所以,要刪除存在硬鏈接文件,必須刪除該文件及該文件存在的所有硬鏈接,這時才會真的刪除該文件數(shù)據(jù)。

需要注意:

1、只有文件才可以創(chuàng)建硬鏈接,目錄不可以創(chuàng)建。

2、硬鏈接只能在同一文件系統(tǒng)中文件創(chuàng)建,不能跨文件系統(tǒng)。

二、符號鏈接(軟鏈接)

在 Linux 系統(tǒng)中,符號鏈接的使用更廣泛。與硬鏈接不同,符號鏈接是一種專門的文件類型,符號鏈接通過文件名稱來指向另一個文件,所以它不像硬鏈接一樣和源文件有相同的inode值。符號鏈接的刪除,并不影響源文件,但源文件刪除后,符號鏈接就會失效。

舉例說明:

首先,我們通過 touch命令 創(chuàng)建 b.txt 文件,之后通過 ln -s 命令來創(chuàng)建 b.txt 的軟鏈接文件。

[root@localhost~]# touch b.txt

[root@localhost~]# ln -s b.txt b-link.txt

之后,我們通過 ls -li 命令來查看創(chuàng)建的文件,你會看到如下內(nèi)容:

[root@localhost ~]# ls -li

400749 lrwxrwxrwx 1 root root     5 6月  18 08:06 b-link.txt -> b.txt

400748 -rw-r--r-- 1 root root       0 6月  18 08:06 b.txt

從結(jié)果上可以看出,兩個文件的第一列 inode 值是不一樣的,這說明符號鏈接和其指向的文件并不相同,而且從結(jié)果中可以很明確的看出 b-link.txt 是指向 b.txt 文件的,這點比硬鏈接直觀。我們來刪除掉 b.txt 文件,驗證一下符號鏈接文件是否有效:

[root@localhost~]# rm b.txt

[root@localhost~]# cat b-link.txt

cat: b-link.txt: 沒有那個文件或目錄從上面的結(jié)果可以看出,刪除 b.txt 源文件后,再查看 b-link.txt 文件,就會提示“沒有那個文件或目錄”,說明此時的符號鏈接文件 b-link.txt 已經(jīng)無效了。通過上面對硬鏈接和符號鏈接的介紹,大致可以歸納為以下對比:

特點

硬鏈接

符號鏈接

名稱解析

較快,因為硬鏈接中包含對鏈接對象的直接引用。

較慢,符號鏈接包含鏈接對象的路徑,因此,必須解析路徑名稱才可以找到鏈接的對象。

鏈接對象

鏈接對象必須存在才可以創(chuàng)建硬鏈接。

鏈接對象不一定存在,不存在一樣可以創(chuàng)建符號鏈接文件。

是否要求同一文件系統(tǒng)

要求在同一個文件系統(tǒng)中。

不要求,符號鏈接可以跨越不同的文件系統(tǒng)。

刪除鏈接對象的要求

只有刪除所有的硬鏈接才相當(dāng)于刪除文件。

無要求,刪除鏈接對象后,使用符號鏈接會給出錯錯誤提示。

寫在最后

通過本文,我們初步了解了硬鏈接和符號鏈接的區(qū)別。

Linux系統(tǒng)中,符號鏈接比硬鏈接靈活很多,符號鏈接可以給任何類型文件系統(tǒng)中的文件創(chuàng)建符號鏈接,而硬鏈接不可以,符號鏈接可以很直觀的看出那個是鏈接,那個是源文件,而硬件鏈接你分辨不出。

重要聲明:本文來自Linux265,經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有,不代表銳成觀點,轉(zhuǎn)載的目的在于傳遞更多知識和信息。

我的評論

還未登錄?點擊登錄

微信掃碼溝通
微信掃碼溝通

微信掃碼溝通

AI
return head