在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

軟鏈接、硬鏈接的區別

科技綠洲 ? 來源:Linux開發架構之路 ? 作者:Linux開發架構之路 ? 2023-11-09 11:41 ? 次閱讀

1 文件系統的尋址過程——以cat命令是如何讀出文件內容、文件的刪除過程為例

操作系統級別看存儲空間的話,是分為很多的block塊,這些block塊是分為很多種類的

圖片

當我們使用cat命令查看文件的時候,比如 cat /1.txt ,那么首先會去尋找根目錄/,Linux一切皆文件,目錄也是文件,根據目錄名找到inode編號,然后查看歸屬信息和權限,是否擁有cat權限,如果有的話再根據指針尋找指向的內容,/的inode block的指針應該是指向/目錄的目錄塊directiry block。然后在/目錄的directiry block塊中搜索1.txt文件,如果有,找到它的inode號,然后根據1.txt的inode編號找到該文件的inode block,檢測歸屬和權限,如果有權限,則根據指針尋找指針指向,該指針指向的就是文件1.txt的具體內容所在的數據塊。這樣就可以把文件內容讀出來了。

圖片

如果我們要刪除一個文件的時候,比如刪除1.txt,首先在super block中,會把1.txt的inode編號標記為free(自由的),也就是可用的。然后再去該文件所在的目錄塊(比如/目錄)中把a.txt和inode編號1111的映射關系刪掉。最后一步,把1.txt的數據所在的數據塊標記為free,也就是可用的,如果有其它數據要存儲,那么這個block是可以分配的。但是,實際上,block里面的內容還沒有被抹去,刪除只是刪除了尋址的方式和映射關系,真正的文件數據還是保存在block中的。

所以,刪除的數據是可以恢復的,首先在super block中把inode1111重新標記為不可分配,然后在directory block中把1.txt和inode1111的映射關系重新建立起來,那么數據就恢復成功了。數據恢復就是一個重新建立關系,打通尋址路徑的過程。

文件只有在被覆蓋的時候,才算是真正的刪除了,也就是有當其他數據正好存在1.txt數據所用的block中時,把原來1.txt文件的內容覆蓋掉,這才算是真正的刪除。所以說,沒有真正的刪除,我們沒有辦法直接把物理硬盤的數據抹去,只能通過刪除映射關系,覆蓋原數據的方式去刪除。(我們看到的磁盤還有多少G空間都是一個邏輯的概念,實際上你的硬盤可能已經全是數據了,只不過有的空間不可用,它保存了你需要的數據,而那些被標記為free狀態的block是可用的,即使它上面有數據也是你已經刪除不需要的數據,當你保存新數據的時候就會分配一些被標記為free狀態的block給你,你的新數據會覆蓋掉原來的數據,這樣新數據就被保存了。所以,一定要分清楚邏輯的可用空間概念和物理硬盤的概念)

圖片

綜上,磁盤沒有真正的刪除操作,只能覆蓋。而格式化的過程就是建立文件系統的過程,也就是把各種block塊劃分出來的過程。

如圖,我們用ll命令查看到的信息就是存在18653這個inode block中的

圖片

所以,即便是建新文件,磁盤空間也會被占用(雖然沒有實際數據,但是會有inode中的信息)

圖片

不管是新建還是刪除文件,第一步都是找super block,分配編號或者把編號標記為free,第二步去目錄中增加或刪除映射關系,第三步給文件的inode塊關聯一個數據塊或把關聯的數據塊標記free。

2 深入探析軟鏈接和硬鏈接本質

軟鏈接相當于Windows下的快捷方式,修改軟鏈接文件,源文件內容也會改變,修改源文件內容,軟鏈接文件內容隨之改變。刪除軟鏈接不影響源文件,刪除源文件軟鏈接文件失效。

圖片

修改硬鏈接文件,源文件內容也會改變,修改源文件內容,硬鏈接文件內容隨之改變。刪除硬鏈接文件,源文件無影響;刪除源文件,硬鏈接文件無影響。

圖片

那么軟鏈接和硬鏈接這些特性是怎么來的呢?首先我們知道,文件存儲分為兩部分,一部分是inode block,另一部分是數據block。

軟鏈接是指向文件名的

圖片

硬鏈接是指向inode的

圖片

一個分區就是一個文件系統,軟鏈接可以跨分區而硬鏈接不可以跨分區。

圖片

這是因為不同分區可以有相同的文件名,但是inode唯一標識一塊block。硬鏈接是指向inode編號的,假如說我現在有一個1.txt的inode編號為12345,該文件在磁盤分區1上面。我現在在磁盤分區2中創建一個指向inode12345的硬鏈接文件,這兩個12345inode編號指向的是自己分區的block塊,這兩個block根本就不是同一塊磁盤空間。

圖片

圖片

在操作系統級別,維護的都是inode編號,也就是說操作系統不認文件名,只認inode編號。我們知道,在文件系統中,inode block中有一個指針,軟鏈接的指針就是指向源文件的文件名的。

圖片

實際上,在每個目錄中都有兩個隱藏文件,.是當前目錄的硬鏈接,…是上一級目錄的硬鏈接。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7246

    瀏覽量

    91225
  • 存儲
    +關注

    關注

    13

    文章

    4507

    瀏覽量

    87128
  • Block
    +關注

    關注

    0

    文章

    26

    瀏覽量

    14904
  • 軟鏈接
    +關注

    關注

    0

    文章

    8

    瀏覽量

    2284
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一文弄懂Linux鏈接鏈接

    在Linux系統下,有兩種鏈接文件:一種是鏈接(Hard Link);另一種是鏈接,也稱為符號鏈接
    發表于 10-21 14:26 ?1515次閱讀

    Linux中的、鏈接區別

    /inittab /test/inittab.hard   發現鏈接與真實文件的大小和創建日期完全相同,類似于copy,同步更新。   3:鏈接與拷貝的
    發表于 02-04 16:34

    Linux文件系統的鏈接鏈接

    。創建方法都很簡單:1. 鏈接(符號鏈接) ln -ssourcetarget 2. 3. 鏈接 (實體
    發表于 12-06 10:55

    Linux文件系統的鏈接鏈接

    。創建方法都很簡單:1.鏈接(符號鏈接) ln -ssourcetarget2.3.鏈接 (實體鏈接
    發表于 12-06 13:34

    【Linux基礎】Linux鏈接簡介

    ,Linux鏈接要系統分配額外的空間用于建立新的索引節點和保存原文件的路徑?! ∥?、Linux鏈接
    發表于 09-20 15:50

    linux下鏈接鏈接區別

    在linux系統中,鏈接分兩種 :一種被稱為鏈接(Hard Link),另一種被稱為符號鏈接鏈接
    發表于 11-15 16:26

    嵌入式開發的鏈接鏈接有什么不同嗎

    為了搞懂這二者關系,我在網上搜集了不少的資料,特意整理一番。1、鏈接鏈接實際上是為文件建一個別名,鏈接文件和原文件實際上是同一個文件。
    發表于 12-21 06:00

    鏈接鏈接區別在哪

    鏈接鏈接區別  鏈接(hard link)
    發表于 12-21 07:21

    你知道Linux連接和鏈接

    Linux鏈接分兩種,一種被稱為鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接
    發表于 04-25 18:00 ?1777次閱讀

    需要了解Linux的鏈接鏈接

    鏈接鏈接是 Linux 文件系統中的一個重要概念,其涉及文件系統中的索引節點 (index node 又稱 inode),而索引節點對象是 Linux 虛擬文件系統 (VFS)
    發表于 04-28 17:01 ?913次閱讀
    需要了解Linux的<b class='flag-5'>硬</b><b class='flag-5'>鏈接</b>與<b class='flag-5'>軟</b><b class='flag-5'>鏈接</b>

    ln 連接與鏈接兩者有什么區別

    ln命令可以生成鏈接鏈接,也可叫做符號鏈接和實體鏈接。
    發表于 11-12 14:35 ?4272次閱讀

    Linux中的鏈接、鏈接都用在哪些場合?

    最近,看到很多文章都在介紹 Linux 中的文件系統,其中就包括:inode 節點、鏈接、鏈接等重要的概念。 于是就有小伙伴私信問我:這些概念我都懂,但是我能利用他們來完成什么工作
    的頭像 發表于 06-21 16:33 ?1889次閱讀

    鏈接PK鏈接

    鏈接PK鏈接
    的頭像 發表于 10-12 18:16 ?1392次閱讀

    鏈接鏈接區別

    鏈接又叫符號鏈接,和原文件不是一個文件,類似Windows的快捷方式,如果原始文件被刪除,所有指向它的符號鏈接也就都被破壞了
    的頭像 發表于 04-19 10:09 ?1531次閱讀
    <b class='flag-5'>軟</b><b class='flag-5'>鏈接</b>與<b class='flag-5'>硬</b><b class='flag-5'>鏈接</b>的<b class='flag-5'>區別</b>
    主站蜘蛛池模板: 泰国一级毛片aaa下面毛多 | 97干97吻| 性夜影院爽黄a爽免费看网站 | 久久综合香蕉久久久久久久 | 全国男人的天堂天堂网 | www.操你啦 | 国产精品爱久久久久久久三级 | 日本加勒比视频在线观看 | 可以免费看的黄色片 | 乱码精品一区二区三区 | 日本在线不卡视频 | 亚州色吧 | 超刺激gay腐文h文 | 成人国产日本亚洲精品 | 国产成人三级经典中文 | 四虎影院在线看 | 天天操天天操天天干 | 亚洲精品一卡2卡3卡三卡四卡 | 成人欧美精品一区二区不卡 | 日日躁夜夜躁狠狠天天 | 自拍偷拍欧美 | 亚洲国产高清人在线 | 日本成片视频 | 韩国免费人成在线观看网站 | 天天透天天操 | 九九热在线免费视频 | 色妞网站| 唐人呦一呦xxxx视频 | 亚洲人成www在线播放 | 国产在线视频你懂的 | 婷婷综合亚洲 | 中文字幕在线观看一区 | 欧美深深色噜噜狠狠yyy | 国产精品久久久久久免费播放 | 午夜美女网站 | 中文字幕一区二区三区四区 | 国产午夜亚洲精品 | 在线免费看黄 | 日本不卡专区 | 高清一级毛片一本到免费观看 | 一区二区三区影视 |