国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

硬鏈接和軟鏈接以及inode的簡述【Linux】

這篇具有很好參考價(jià)值的文章主要介紹了硬鏈接和軟鏈接以及inode的簡述【Linux】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

inode是什么?

??認(rèn)識(shí)inode之前,先來看一下一個(gè)文件在磁盤里面是怎么存儲(chǔ)的。
??首先一個(gè)物理的圓盤形狀且多層的一個(gè)磁盤會(huì)被邏輯化成為一個(gè)數(shù)組,找到一個(gè)文件在這個(gè)數(shù)組里面叫做LBA尋址。
??這個(gè)數(shù)組會(huì)被劃分為一個(gè)一個(gè)的block,所以磁盤也會(huì)被稱為塊設(shè)備。一個(gè)個(gè)的block的大小是在格式化的時(shí)候就確定好了的,并且不能更改。一般來說,初次使用磁盤的時(shí)候就會(huì)格式化磁盤。
??一個(gè)文件系統(tǒng)會(huì)包含多個(gè)block。
如下:
硬鏈接和軟鏈接以及inode的簡述【Linux】,系統(tǒng)編程,linux,運(yùn)維,服務(wù)器,c++,學(xué)習(xí)方法
??上面這個(gè)圖片叫做塊組(Block group)。里面有一部分叫做inode Table.里面存放著一個(gè)個(gè)的inode,一個(gè)inode里面包含一個(gè)文件的屬性,每一個(gè)inode都有一個(gè)inode編號(hào)。另外,Data blocks 里面有一部分叫做數(shù)據(jù)項(xiàng),其中包含了 文件名和inode的一一對(duì)應(yīng)的映射關(guān)系。并且,每一個(gè)文件獨(dú)有一個(gè)自己的目錄項(xiàng)。
??所以同一個(gè)目錄下不可以有相同的文件名,不同目錄下可以有相同的文件名。

找文件的步驟:
??1. 讀取根目錄:首先,操作系統(tǒng)會(huì)讀取磁盤的根目錄。根目錄是文件系統(tǒng)的頂層目錄,它包含了文件系統(tǒng)中所有文件和目錄的信息。

??2. 遍歷目錄結(jié)構(gòu):操作系統(tǒng)會(huì)通過根目錄開始遍歷文件系統(tǒng)的目錄結(jié)構(gòu)。它會(huì)逐級(jí)進(jìn)入子目錄,讀取每個(gè)目錄中的目錄項(xiàng)信息。

??3. 匹配文件名:操作系統(tǒng)會(huì)比對(duì)目錄項(xiàng)中的文件名與待查找文件的文件名是否匹配。如果匹配成功,則找到了目標(biāo)文件的inode號(hào)碼。

??4. 獲取inode信息:根據(jù)inode號(hào)碼,操作系統(tǒng)會(huì)通過inode表或其他數(shù)據(jù)結(jié)構(gòu)獲取與該inode相關(guān)聯(lián)的元數(shù)據(jù)信息,如文件大小、權(quán)限、所有者等。

??5. 定位數(shù)據(jù)塊:一旦獲取了inode信息,操作系統(tǒng)就知道了文件實(shí)際存儲(chǔ)在哪些數(shù)據(jù)塊中。通過inode中的指針或引用,操作系統(tǒng)可以定位到文件的數(shù)據(jù)塊。

??6. 讀取文件內(nèi)容:最后,操作系統(tǒng)會(huì)讀取文件數(shù)據(jù)塊中存儲(chǔ)的實(shí)際文件內(nèi)容,并將其提供給用戶進(jìn)行讀取或處理。

面試題

問:系統(tǒng)里還有空間,為何創(chuàng)建文件或?qū)懭胛募?huì)失???
答:因?yàn)閕node和Data blocks的空間是固定的,不能保證兩個(gè)同時(shí)有空間,若inode滿了,Data blocks有空間,還是會(huì)失敗。

硬鏈接

??我們看到,真正找到磁盤上文件的并不是文件名,而是inode。 其實(shí)在linux中可以讓多個(gè)文件名對(duì)應(yīng)于同一個(gè)inode。

??創(chuàng)建硬鏈接是在文件系統(tǒng)中創(chuàng)建一個(gè)指向目標(biāo)文件的硬鏈接,硬鏈接與目標(biāo)文件共享相同的 inode 和數(shù)據(jù)塊,它們?cè)谖募到y(tǒng)中被視為同一實(shí)體,即使使用不同的文件名。硬鏈接就相當(dāng)于給文件起別名
使用的命令如下:
???????? ln <目標(biāo)文件> <鏈接名>

硬鏈接和軟鏈接以及inode的簡述【Linux】,系統(tǒng)編程,linux,運(yùn)維,服務(wù)器,c++,學(xué)習(xí)方法
??可以看出來多個(gè)文件名共用一個(gè)inode
硬鏈接和軟鏈接以及inode的簡述【Linux】,系統(tǒng)編程,linux,運(yùn)維,服務(wù)器,c++,學(xué)習(xí)方法
??上圖可以看出來,使用任意一個(gè)文件名來改變文件內(nèi)容,所有文件名中的內(nèi)容都會(huì)改變。
硬鏈接和軟鏈接以及inode的簡述【Linux】,系統(tǒng)編程,linux,運(yùn)維,服務(wù)器,c++,學(xué)習(xí)方法
??可以看出來,隨著硬鏈接的增加,這個(gè)字段的數(shù)字大小也會(huì)增加。這個(gè)字段代表硬鏈接數(shù)。

??當(dāng)創(chuàng)建出來一個(gè)文件時(shí),這個(gè)硬鏈接數(shù)都是為1的。所以我們?cè)趧h除文件時(shí)干了兩件事情:

  1. 在目錄中將對(duì)應(yīng)的記錄刪除。
  2. 將硬連接數(shù)置為0,對(duì)應(yīng)的磁盤釋放。
  3. 需要注意的是,即使一個(gè)文件有多個(gè)硬鏈接,只要所有硬鏈接都被刪除,文件的數(shù)據(jù)才會(huì)真正被刪除。在最后一個(gè)硬鏈接被刪除之前,其他硬鏈接仍然可以訪問和使用文件的內(nèi)容。

軟鏈接

  • 軟鏈接(Symbolic Link),也被稱為符號(hào)鏈接或軟連接,是一種特殊類型的文件,它指向另一個(gè)文件或目錄。
  • 軟鏈接是通過路徑名來引用的,類似于一個(gè)快捷方式或別名。它允許將一個(gè)文件或目錄鏈接到另一個(gè)位置,而無需復(fù)制或移動(dòng)實(shí)際的數(shù)據(jù)。
  • 軟鏈接與硬鏈接不同,軟鏈接是一個(gè)獨(dú)立的文件,它包含了指向目標(biāo)文件或目錄的路徑信息。這意味著當(dāng)訪問軟鏈接時(shí),操作系統(tǒng)會(huì)解析軟鏈接并跟蹤到目標(biāo)文件或目錄,然后訪問真正的數(shù)據(jù)。
    使用這個(gè)命令來建立軟鏈接:
    ??????ln -s <目標(biāo)文件或目錄> <鏈接名>
    硬鏈接和軟鏈接以及inode的簡述【Linux】,系統(tǒng)編程,linux,運(yùn)維,服務(wù)器,c++,學(xué)習(xí)方法
    ??可以看出來,硬鏈接數(shù)還是1,因?yàn)檐涙溄訐碛歇?dú)立的一個(gè)inode,每一個(gè)文件都是獨(dú)立的,所以u(píng)和t是兩個(gè)文件,只不過u指向了t,且u的文件大小也不是t的文件大小。
    ??需要注意的是,軟鏈接有可能形成循環(huán)鏈接,即鏈接鏈條上存在循環(huán)引用。這種情況下,操作系統(tǒng)可能無法正確解析鏈接關(guān)系,導(dǎo)致訪問錯(cuò)誤或死循環(huán)。因此,在創(chuàng)建軟鏈接時(shí)應(yīng)注意避免循環(huán)鏈接。

?????? 創(chuàng)作不易,你的點(diǎn)贊和關(guān)注都是對(duì)我莫大的鼓勵(lì),再次感謝您的觀看??文章來源地址http://www.zghlxwxcb.cn/news/detail-823241.html

到了這里,關(guān)于硬鏈接和軟鏈接以及inode的簡述【Linux】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux系統(tǒng)編程:文件系統(tǒng)和inode

    Linux系統(tǒng)編程:文件系統(tǒng)和inode

    目錄 一.?磁盤的結(jié)構(gòu)和讀寫數(shù)據(jù)的方式 1.1?磁盤級(jí)文件和內(nèi)存級(jí)文件 1.2?磁盤的物理結(jié)構(gòu) 1.3?訪問磁盤數(shù)據(jù)的方式 二.?磁盤文件系統(tǒng) 2.1?磁盤的分區(qū)管理方法 2.2?文件名和inode的關(guān)系 三.?結(jié)合文件系統(tǒng)對(duì)文件創(chuàng)建和刪除的相關(guān)問題的理解 3.1?文件創(chuàng)建時(shí)操作系統(tǒng)進(jìn)行的工作

    2024年02月16日
    瀏覽(24)
  • Linux硬鏈接和軟連接

    硬連接指通過索引節(jié)點(diǎn)來進(jìn)行連接。在 Linux 的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)(Inode Index)。在 Linux 中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。比如:A 是 B 的硬鏈接(A 和 B 都是文件名),則 A 的目錄項(xiàng)中的 inod

    2024年02月12日
    瀏覽(13)
  • [Linux]理解文件系統(tǒng)!動(dòng)靜態(tài)庫詳細(xì)制作使用!(緩沖區(qū)、inode、軟硬鏈接、動(dòng)靜態(tài)庫)

    [Linux]理解文件系統(tǒng)!動(dòng)靜態(tài)庫詳細(xì)制作使用!(緩沖區(qū)、inode、軟硬鏈接、動(dòng)靜態(tài)庫)

    ? ? ? ? hello,大家好,這里是bang___bang_,今天來談?wù)劦奈募到y(tǒng)知識(shí),包含有緩沖區(qū)、inode、軟硬鏈接、動(dòng)靜態(tài)庫。本篇旨在分享記錄知識(shí),如有需要,希望能有所幫助。 目錄 1??緩沖區(qū) ??緩沖區(qū)的意義 ??常見緩沖區(qū)刷新策略 ??緩沖區(qū)位置猜想 ??現(xiàn)象猜測(cè) ??現(xiàn)象解

    2024年02月13日
    瀏覽(27)
  • Linux教程——深度剖析Linux硬鏈接和軟鏈接,直擊它們的本質(zhì)!

    在Linux系統(tǒng)中, 硬鏈接(Hard Link)和軟鏈接(Symbolic Link,也稱為符號(hào)鏈接或軟連接) 是兩種常用的文件鏈接方式。它們都用于創(chuàng)建指向其他文件的鏈接,但它們的實(shí)現(xiàn)和特性有所不同。下面將詳細(xì)深度剖析硬鏈接和軟鏈接,并解釋一下它們的本質(zhì)。 硬鏈接是通過文件系統(tǒng)中

    2024年02月09日
    瀏覽(17)
  • 【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接

    【Linux】-文件系統(tǒng)的詳解以及軟硬鏈接

    ??作者:小樹苗渴望變成參天大樹?? ??作者宣言:認(rèn)真寫好每一篇博客?? ??作者gitee:gitee? ??作者專欄:C語言,數(shù)據(jù)結(jié)構(gòu)初階,Linux,C++ 動(dòng)態(tài)規(guī)劃算法?? 如 果 你 喜 歡 作 者 的 文 章 ,就 給 作 者 點(diǎn) 點(diǎn) 關(guān) 注 吧! 今天我們開始講解文件系統(tǒng),上一篇我們通過文件操作,

    2024年02月04日
    瀏覽(29)
  • linux之文件系統(tǒng)、inode和動(dòng)靜態(tài)庫制作和發(fā)布

    linux之文件系統(tǒng)、inode和動(dòng)靜態(tài)庫制作和發(fā)布

    1.沒有被打開的文件都在磁盤上? --- 磁盤級(jí)文件 2.對(duì)磁盤級(jí)別的文件,我們的側(cè)重點(diǎn) 單個(gè)文件角度 -- 這個(gè)文件在哪里,有多大,其他屬性是什么? 站在系統(tǒng)角度 --? 一共有多少文件?各自屬性在哪里?如何快速找到?可以存儲(chǔ)多少個(gè)文件?如何快速找到指定文件?如何對(duì)此

    2024年04月10日
    瀏覽(21)
  • c語言的鏈接(靜態(tài)鏈接和動(dòng)態(tài)鏈接)以及a.out的簡述

    ?????? 鏈接過程分類兩種,動(dòng)態(tài)鏈接和靜態(tài)鏈接。如果函數(shù)庫的一份拷貝是可執(zhí)行文件的物理組成部分,則為靜態(tài)鏈接,動(dòng)態(tài)鏈接生成的可執(zhí)行文件只包含了文件名,在運(yùn)行時(shí),程序會(huì)自動(dòng)尋找所需要的函數(shù)庫。函數(shù)只有在運(yùn)行的時(shí)候才會(huì)被解析調(diào)用,它是在main函數(shù)之前

    2024年02月07日
    瀏覽(15)
  • Linux系統(tǒng)編程學(xué)習(xí) NO.5 ——shell命令行的概念以及原理、權(quán)限的概念

    Linux系統(tǒng)編程學(xué)習(xí) NO.5 ——shell命令行的概念以及原理、權(quán)限的概念

    首先,用戶下達(dá)指令需求。此時(shí)Linux操作系統(tǒng)的內(nèi)核kernel,并不會(huì)直接接收用戶下達(dá)的指令,因?yàn)椴僮飨到y(tǒng)不擅長跟用戶打交道。那么指令要如何下達(dá)呢?這就命令行解釋器來對(duì)用戶的指令進(jìn)行處理。 shell對(duì)于Linux主要是對(duì)指令進(jìn)行解析,解析指令給Linux內(nèi)核。反饋結(jié)果在通過內(nèi)

    2024年02月06日
    瀏覽(17)
  • linux系統(tǒng)nginx主配置和日志簡述

    變量 說明 $remote_addr 遠(yuǎn)程地址:記錄客戶端ip $remote_user 遠(yuǎn)程客戶:記錄客戶端用戶名稱 [$time_local] 本地時(shí)間:服務(wù)器自身時(shí)間 $request 請(qǐng)求:記錄請(qǐng)求的URL和HTTP協(xié)議 $status 狀態(tài):記錄請(qǐng)求狀態(tài) $body_bytes_sent 發(fā)送給客戶端的字節(jié)數(shù),不包括影響頭的大小 $http_referer 引用:記錄從

    2024年02月02日
    瀏覽(32)
  • 《Linux操作系統(tǒng)編程》 第六章 Linux中的進(jìn)程監(jiān)控: fork函數(shù)的使用,以及父子進(jìn)程間的關(guān)系,掌握exec系列函數(shù)

    《Linux操作系統(tǒng)編程》 第六章 Linux中的進(jìn)程監(jiān)控: fork函數(shù)的使用,以及父子進(jìn)程間的關(guān)系,掌握exec系列函數(shù)

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個(gè)人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動(dòng)形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬

    2024年02月11日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包