??????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????慕斯主頁(yè):修仙—?jiǎng)e有洞天?
? ?????????????????????????????????????????????????????????今日夜電波:晴る—ヨルシカ
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0:20━━━━━━???──────── 4:30
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????? ? ?? ? ? ? ?? ? ????
????????????????????????????????????????關(guān)注??點(diǎn)贊??收藏您的每一次鼓勵(lì)都是對(duì)我莫大的支持??
目錄
引入
磁盤的物理存儲(chǔ)結(jié)構(gòu)
磁盤存儲(chǔ)的邏輯抽象結(jié)構(gòu)
理解文件系統(tǒng)
inode
什么是inode?
inode Table
inode Bitmap
Data blocks
Block Bitmap
Super Block
GDT
Boot Block
對(duì)于目錄的理解
硬鏈接和軟鏈接
硬鏈接
硬鏈接的應(yīng)用
軟連接
引入
????????當(dāng)我們使用ls -l命令的時(shí)候,我們可以看到的除了看到文件名,還看到了文件元數(shù)據(jù) 。而對(duì)于所表示部分的理解,依次分別為:權(quán)限部分、鏈接數(shù)、文件所有者、文件所屬組、文件的大小、文件的最后修改時(shí)間、以及文件名。
????????例子:第一行a.out的對(duì)應(yīng)表示:
- rwxrwxr-x:這是文件權(quán)限部分,共有10個(gè)字符,分為4組,每組3個(gè)字符。第一組表示文件所有者的權(quán)限,第二組表示文件所屬組的權(quán)限,第三組表示其他用戶的權(quán)限。
- rwx:表示文件所有者具有讀(r)、寫(w)和執(zhí)行(x)權(quán)限。
- rwx:表示文件所屬組具有讀(r)、寫(w)和執(zhí)行(x)權(quán)限。
- r-x:表示其他用戶具有讀(r)和執(zhí)行(x)權(quán)限,但沒有寫(w)權(quán)限。
- 1:表示鏈接數(shù),這里有一個(gè)鏈接指向該文件。
- amazon:表示文件所有者的用戶名是amazon。
- amazon:表示文件所屬組的用戶名是amazon。
- 8560:表示文件的大小為8560字節(jié)。
- Jan 15 20:57:表示文件的最后修改時(shí)間為2022年1月15日20點(diǎn)57分。
- a.out:表示文件名是a.out。
????????當(dāng)然,如果想查看更詳細(xì)的有關(guān)信息可以使用stat命令
????????還是以a.out為例:
????????對(duì)于以上的解析:
????????文件名為'a.out',大小為8560字節(jié),屬于普通文件。文件的權(quán)限設(shè)置為-rwxrwxr-x,表示文件所有者具有讀、寫和執(zhí)行權(quán)限,文件所屬組和其他用戶只有讀和執(zhí)行權(quán)限。文件的設(shè)備號(hào)為fd01h/64769d,inode編號(hào)為1310801,鏈接數(shù)為1。文件的訪問(wèn)時(shí)間是2024年1月15日20點(diǎn)57分22秒395467毫秒,修改時(shí)間是2024年1月15日20點(diǎn)57分19秒028325毫秒,更改時(shí)間也是2024年1月15日20點(diǎn)57分19秒028325毫秒。文件沒有創(chuàng)建時(shí)間。
????????對(duì)于上述的兩個(gè)例子,我們對(duì)于其中的信息大多都是認(rèn)識(shí)的,但是對(duì)于Blocks、Inode、Links等卻不怎么熟悉,接下來(lái)的文章將圍繞文件系統(tǒng)的物理到系統(tǒng)來(lái)敘述,即:從物理層面的磁盤到系統(tǒng)上的磁盤。以此來(lái)了解這些信息的意義。
磁盤的物理存儲(chǔ)結(jié)構(gòu)
????????由上圖可見,一個(gè)盤面可以有很多的同心磁道,一圈磁道可以有很多扇形的扇區(qū),而扇區(qū)就是最小的存儲(chǔ)單元(大概512B或者4KB)。而存儲(chǔ)文件的本質(zhì)就是向這些扇區(qū)進(jìn)行寫入!這是通過(guò)上電改變磁盤中顆粒的磁極朝向來(lái)作為0/1進(jìn)而看作寫入數(shù)據(jù),讀取也是讀取磁極的朝向來(lái)看作讀取0/1進(jìn)而讀取數(shù)據(jù)。如果我們想向一個(gè)扇區(qū)寫入,我們?nèi)绾芜M(jìn)行尋址、定位呢?1、選擇哪一面盤片—本質(zhì)上就是選擇磁頭。2、選擇該面上的哪一個(gè)磁道。3、選擇在該磁道上的哪一個(gè)扇區(qū)。當(dāng)然,由于我們是有多個(gè)盤片的,我們可以向一個(gè)寫入,想當(dāng)然的也可以向任意一個(gè)/連續(xù)多個(gè)扇區(qū)寫入,也可以隨機(jī)寫入。
磁盤存儲(chǔ)的邏輯抽象結(jié)構(gòu)
????????通過(guò)上面對(duì)于物理層面磁盤的理解。接下來(lái)我們需要將這個(gè)結(jié)構(gòu)抽象到系統(tǒng)中!一個(gè)磁盤中有多個(gè)盤片,盤片中分為多個(gè)磁道,通過(guò)一定的劃分可以劃分為多個(gè)扇區(qū)(可以理解為從盤片圓心拉出來(lái)很多條線,然后其中兩條線以及磁道分割出來(lái)的區(qū)域)。對(duì)此我們可以將整個(gè)磁盤想像成如下的一個(gè)結(jié)構(gòu),將磁盤盤片想像成線性空間(可以理解為一個(gè)數(shù)組)。如下圖所示,我們可以這樣理解對(duì)應(yīng)的結(jié)構(gòu):
????????于是經(jīng)過(guò)上述的操作我們將對(duì)于磁盤的管理就變成了對(duì)線性空間的管理!接下來(lái),我們先理解一個(gè)概念:
????????CHS-CHS指的是Cylinder(柱面)、Head(磁頭)、Sector(扇區(qū))。這是一種磁盤尋址方式,獲取這些CHS信息,通過(guò)這些信息就可以對(duì)磁盤的信息進(jìn)行定位。
????????理解了CHS后,那我們的OS中是直接使用CHS來(lái)進(jìn)行對(duì)應(yīng)的管理嗎?答案為否,OS是軟件,磁盤是硬件,硬件定位一個(gè)地址,用的是CHS,但是如果OS直接用了這個(gè)地址,此時(shí)硬件發(fā)生改變,OS也要發(fā)生變化,所以O(shè)S要和硬件做好解耦工作。這就需要Logical Block Address - LBA。
????????我們可以在操作系統(tǒng)中以一個(gè)一定的數(shù)據(jù)結(jié)構(gòu)(可以想像成數(shù)組)來(lái)對(duì)磁盤進(jìn)行管理。這個(gè)時(shí)候,對(duì)于磁盤的管理就變成了對(duì)數(shù)組的管理!
????????需要注意的是:操作系統(tǒng)可以按照扇區(qū)為單位進(jìn)行存儲(chǔ)也可以基于文件系統(tǒng),按照文件塊為單位進(jìn)行數(shù)據(jù)存?。ㄒ话銥?KB),這樣效率會(huì)比較高—即內(nèi)存到磁盤,磁盤到內(nèi)存的IO交互。
????????對(duì)于LBA—CHS的轉(zhuǎn)化:
????????我們可以定義一系列的規(guī)則來(lái)對(duì)于磁盤進(jìn)行管理,比如:數(shù)組下標(biāo)1-100000為第一面,100001-200000為第二面,第一面中1-10000為第一個(gè)磁道,1-1000為第一個(gè)扇區(qū)等等。
理解文件系統(tǒng)
????????理解了上述的相關(guān)知識(shí)點(diǎn)后,我們知道了對(duì)于磁盤的管理實(shí)際上就是對(duì)于OS中“數(shù)組”的管理。而為了方便管理,我們可以通過(guò)分治的思想將數(shù)組再進(jìn)行分區(qū),這個(gè)也可以理解成我們windows中的分盤,你的SSD只有一塊,但是分出來(lái)了兩個(gè)盤。如下C和D盤:
????????對(duì)于管理整個(gè)磁盤太困難,就如上圖,我們管理512G太難,那么就分多幾個(gè)區(qū)來(lái)管理,你可以分100G、150G等等。最后,我們可以用管理小區(qū)域的經(jīng)驗(yàn)進(jìn)行復(fù)制,從而管理整體。
????????雖然,我們將磁盤進(jìn)行了分區(qū),但是分區(qū)完后仍然很大,這個(gè)時(shí)候我們可以進(jìn)一步劃分,這個(gè)進(jìn)一步劃分叫做—分組。我們可以將每個(gè)分區(qū)劃分為2GB大小的組,通過(guò)對(duì)每個(gè)組進(jìn)行管理,在將管理的經(jīng)驗(yàn)進(jìn)行復(fù)制,從而管理整體。如下:
????????Linux ext2文件系統(tǒng),上圖為磁盤文件系統(tǒng)圖(內(nèi)核內(nèi)存映像肯定有所不同),磁盤是典型的塊設(shè)備,硬盤分區(qū)被劃分為一個(gè)個(gè)的block。一個(gè)block的大小是由格式化的時(shí)候確定的,并且不可以更改。例如mke2fs的-b選項(xiàng)可以設(shè)定block大小為1024、2048或4096字節(jié)。而上圖中啟動(dòng)塊(Boot Block)的大小是確定的,。
????????Block Group:ext2文件系統(tǒng)會(huì)根據(jù)分區(qū)的大小劃分為數(shù)個(gè)Block Group。而每個(gè)Block Group都有著相同的結(jié)構(gòu)組成。政府管理各區(qū)的例子
????????超級(jí)塊(Super Block):存放文件系統(tǒng)本身的結(jié)構(gòu)信息。記錄的信息主要有:bolck 和 inode的總量,未使用的block和inode的數(shù)量,一個(gè)block和inode的大小,最近一次掛載的時(shí)間,最近一次寫入數(shù)據(jù)的時(shí)間,最近一次檢驗(yàn)磁盤的時(shí)間等其他文件系統(tǒng)的相關(guān)信息。Super Block的信息被破壞,可以說(shuō)整個(gè)文件系統(tǒng)結(jié)構(gòu)就被破壞了
????????GDT,Group Descriptor Table:塊組描述符,描述塊組屬性信息,有興趣的同學(xué)可以在了解一下塊位圖(Block Bitmap):Block Bitmap中記錄著Data Block中哪個(gè)數(shù)據(jù)塊已經(jīng)被占用,哪個(gè)數(shù)據(jù)塊沒有被占用
????????inode位圖(inode Bitmap):每個(gè)bit表示一個(gè)inode是否空閑可用。
????????i節(jié)點(diǎn)表:存放文件屬性 如 文件大小,所有者,最近修改時(shí)間等
????????數(shù)據(jù)區(qū):存放文件內(nèi)容
????????需要注意的是:在文件系統(tǒng)中,文件信息=內(nèi)容+屬性。他們都是數(shù)據(jù),內(nèi)容和屬性是分開存儲(chǔ)的,但是需要讓管理數(shù)據(jù)寫入到塊組當(dāng)中。
inode
ls -li//顯示出具體的信息,包含inode編號(hào)
????????一般情況,一個(gè)文件一個(gè)inode編號(hào),基本上,每個(gè)文件都要有inode。在整個(gè)分區(qū)具有唯一性,Linux內(nèi)核中,識(shí)別文件和文件名是無(wú)關(guān)的,只和inode有關(guān)。
什么是inode?
????????在Linux系統(tǒng)中,inode是一種數(shù)據(jù)結(jié)構(gòu),大小通常為128B。它的主要功能是用于描述和定位文件系統(tǒng)中的文件和目錄。每個(gè)文件或目錄都由一個(gè)或多個(gè)inode組成,這些inode包含了文件或目錄的所有信息,如文件大小、創(chuàng)建時(shí)間、修改時(shí)間、權(quán)限等。可以這樣理解:
struct inode{
int ref_count;//引用計(jì)數(shù)
大小、權(quán)限、所有者、所屬組、ACM時(shí)間、inode編號(hào)等
int blocks[N]
}
inode Table
????????inode表里面會(huì)存儲(chǔ)很多的inode。每一個(gè)inode的大小是固定的,也就是128B,那么我們可以通過(guò)inode編號(hào)對(duì)固定大小的偏移量進(jìn)行偏移就可找到對(duì)應(yīng)的inode。你可以理解為:通常每一個(gè)分組都會(huì)有一個(gè)起始inode編號(hào),當(dāng)要計(jì)算inode編號(hào)時(shí),通過(guò)偏移量加上起始inode編號(hào)就可得出。那如果我們想知道定位對(duì)應(yīng)的分組位置,也可通過(guò)減去起始inode編號(hào)來(lái)定位。
inode Bitmap
????????inode bitmap是一種數(shù)據(jù)結(jié)構(gòu),它的主要功能是用于追蹤inode table在Linux系統(tǒng)中,inode bitmap是一種數(shù)據(jù)結(jié)構(gòu),它的主要功能是用于追蹤inode table中的每個(gè)inode是否已經(jīng)被使用。具體來(lái)說(shuō),每個(gè)bitmap中的每一個(gè)位都對(duì)應(yīng)于inode table中的一個(gè)inode,如果該位為0,則表示對(duì)應(yīng)的inode為空,如果為1,則表示相應(yīng)的inode entry已被使用。
????????這種位圖技術(shù)(bitmap)的優(yōu)勢(shì)在于,當(dāng)需要修改文件系統(tǒng)時(shí),可以快速找到空閑的inode位置。例如,當(dāng)需要新建一個(gè)文件時(shí),系統(tǒng)會(huì)先檢查inode bitmap中哪些inode是空閑的,然后將新文件的信息存儲(chǔ)到這個(gè)空閑的inode中。同樣地,當(dāng)文件被刪除時(shí),對(duì)應(yīng)的inode會(huì)被標(biāo)記為可用,以供后續(xù)的新建文件使用。
Data blocks
????????在Linux系統(tǒng)中,數(shù)據(jù)區(qū)塊(block)是文件存儲(chǔ)的最小單位,每個(gè)由多個(gè)連續(xù)性的扇區(qū)(sector)組成,每個(gè)扇區(qū)通常是512字節(jié)。而一個(gè)數(shù)據(jù)塊最常見的大小則是4KB,即連續(xù)8個(gè)sector組成,用于存儲(chǔ)文件數(shù)據(jù)和目錄數(shù)據(jù)。
????????需要注意的是:上面提到的inode中會(huì)維護(hù)一個(gè)blocks數(shù)組,這個(gè)數(shù)組記錄的是對(duì)應(yīng)數(shù)據(jù)區(qū)塊的塊號(hào),需要讀取文件就可根據(jù)這些塊號(hào)來(lái)讀??!這個(gè)數(shù)組大小大概為15,,其中0-12位為直接映射,13:為間接映射,14為三級(jí)映射。
????????看到這里,你應(yīng)該就明白了,只要我們知道了inode編號(hào)我們就可以根據(jù)inode編號(hào)找到對(duì)應(yīng)的分組,再通過(guò)分組找到對(duì)應(yīng)的inode數(shù)據(jù)結(jié)構(gòu),然后通過(guò)inode里面的blocks數(shù)組來(lái)進(jìn)一步找到對(duì)應(yīng)的數(shù)據(jù)區(qū)塊讀取對(duì)應(yīng)的數(shù)據(jù)。
Block Bitmap
????????block bitmap是一種數(shù)據(jù)結(jié)構(gòu),它的主要功能是用于追蹤每個(gè)block group中哪些block已經(jīng)被使用。具體來(lái)說(shuō),block bitmap是一個(gè)特殊的文件,其大小恰好為一個(gè)block,而在這個(gè)block中,每個(gè)bit表示一個(gè)對(duì)應(yīng)block的占用情況。如果該位為0,則表示對(duì)應(yīng)的block為空,如果為1,則表示相應(yīng)的block中存有數(shù)據(jù)。
????????這種block bitmap技術(shù)的優(yōu)勢(shì)在于,當(dāng)需要讀取或修改文件時(shí),可以快速找到空閑的block位置。例如,當(dāng)執(zhí)行寫入操作時(shí),系統(tǒng)會(huì)首先檢查block bitmap,找出哪些block是空閑的,然后將新的數(shù)據(jù)寫入到這些空閑的block中。同樣地,當(dāng)某個(gè)block不再使用時(shí),系統(tǒng)會(huì)在block bitmap中將相應(yīng)的bit標(biāo)記為可用,以供后續(xù)的存儲(chǔ)操作使用。
????????此外,需要注意的是,一個(gè)block group中最多只能包含8×4096=32768個(gè)block。因此,對(duì)于一個(gè)含有大量數(shù)據(jù)的磁盤分區(qū)來(lái)說(shuō),可能需要多個(gè)block bitmap來(lái)分別記錄各個(gè)block group的使用情況。
????????看到這里你也應(yīng)該明白了,新建、刪除文件只需要改位圖即可!
Super Block
????????在Linux操作系統(tǒng)中,superblock是一個(gè)特殊的數(shù)據(jù)結(jié)構(gòu),它記錄了文件系統(tǒng)的整體信息,包括inode和block的總量、使用量、剩余量,以及檔案系統(tǒng)的格式與相關(guān)信息等。具體來(lái)說(shuō),它包含了文件系統(tǒng)的類型、block大小、block總數(shù)、inode大小、inode總數(shù)、group的總數(shù)等等。此外,每個(gè)Group 中的SuperBlock都是對(duì) Main SuperBlock(主SuperBlock)的備份,用于處理主SuperBlock故障或者誤刪的情況。
????????為了保證數(shù)據(jù)的安全性,Linux會(huì)周期性地將所有“臟”的超級(jí)塊寫回磁盤,以減少數(shù)據(jù)丟失的風(fēng)險(xiǎn)。這種與超級(jí)塊關(guān)聯(lián)的操作是由數(shù)據(jù)結(jié)構(gòu)super_operations來(lái)描述的,該結(jié)構(gòu)的起始地址存放在超級(jí)塊的s_op域中。
????????需要注意的是:只有個(gè)別組內(nèi)會(huì)有SuperBlock,并不是所有的組都有。
????????總的來(lái)說(shuō),superblock是Linux文件系統(tǒng)中非常重要的一部分,它記錄了文件系統(tǒng)的關(guān)鍵信息,并負(fù)責(zé)管理文件系統(tǒng)的運(yùn)行。通過(guò)superblock,我們可以了解到文件系統(tǒng)的詳細(xì)信息,包括其類型、大小、使用情況等等。同時(shí),它也承擔(dān)著保障數(shù)據(jù)安全的重要任務(wù)。
GDT
????????在Linux操作系統(tǒng)中,GDT(Global Descriptor Table)是一種全局描述符表,主要用于管理和定位內(nèi)存地址空間。在實(shí)模式下,當(dāng)我們需要對(duì)一個(gè)內(nèi)存地址進(jìn)行訪問(wèn)時(shí),我們使用的是【段基地址:偏移地址】的形式來(lái)計(jì)算內(nèi)存的實(shí)際地址。然而,當(dāng)系統(tǒng)進(jìn)入到保護(hù)模式后,內(nèi)存管理被分為段式和段頁(yè)式,這時(shí)就需要使用到GDT。
????????GDT可以看作是一個(gè)描述符數(shù)組,其中的每個(gè)元素都被稱為一個(gè)選擇子。選擇子的主要作用是確定段描述符,其目的一方面是為了實(shí)現(xiàn)特權(quán)級(jí)、界限等安全考慮,另一方面則是為了確定段的基地址。具體來(lái)說(shuō),GDT中的每一項(xiàng)都是由8字節(jié)組成,其中包括了段限、基址等關(guān)鍵信息。
????????總的來(lái)說(shuō),GDT是Linux操作系統(tǒng)用來(lái)進(jìn)行內(nèi)存管理和保護(hù)的一種重要數(shù)據(jù)結(jié)構(gòu)。它通過(guò)有效地劃分和管理內(nèi)存地址空間,為運(yùn)行在操作系統(tǒng)上的各種程序提供了必要的資源和安全保障。
Boot Block
????????在Linux中,引導(dǎo)塊(Boot Block)是每個(gè)磁盤分區(qū)的開頭部分,它預(yù)留了1024字節(jié)的大小來(lái)存放引導(dǎo)程序和數(shù)據(jù)。這個(gè)區(qū)域被稱為引導(dǎo)扇區(qū),可能位于第一個(gè)Block,即Block 0中,但并不一定會(huì)占滿這個(gè)Block,因?yàn)锽lock的大小可能會(huì)大于1024字節(jié)。
????????引導(dǎo)塊中主要包含了啟動(dòng)時(shí)所需的基本信息,如啟動(dòng)加載程序和內(nèi)核。這些信息對(duì)于系統(tǒng)的啟動(dòng)過(guò)程至關(guān)重要。例如,啟動(dòng)加載程序可以負(fù)責(zé)加載更多的系統(tǒng)組件,而內(nèi)核則是計(jì)算機(jī)硬件和系統(tǒng)軟件之間的橋梁,用于控制應(yīng)用程序?qū)τ布脑L問(wèn)。
????????值得注意的是,與BIOS中的引導(dǎo)塊不同,Linux的引導(dǎo)塊不依賴于特定的操作系統(tǒng)或硬件。這是因?yàn)長(zhǎng)inux是一種開源操作系統(tǒng),其設(shè)計(jì)允許在各種不同的硬件和操作系統(tǒng)上運(yùn)行。因此,無(wú)論您使用的是哪種Linux發(fā)行版或計(jì)算機(jī)硬件,引導(dǎo)塊的功能和結(jié)構(gòu)基本相同。
對(duì)于目錄的理解
????????目錄實(shí)際上也是文件,目錄的數(shù)據(jù)塊保存的是目錄下的文件的文件名和inode的映射關(guān)系。通常我們?cè)L問(wèn)一個(gè)文件,打開目錄,根據(jù)文件名,找到inode就可以訪問(wèn)那個(gè)文件了。因此,同一個(gè)目錄下也是不能存在同名文件的!但是我們可以用不同的文件名指向相同的inode。這個(gè)可以理解為指針和地址的關(guān)系!那這個(gè)現(xiàn)象怎么看到呢?這就要說(shuō)到硬鏈接和軟鏈接了。
硬鏈接和軟鏈接
????????硬鏈接和軟鏈接是Linux系統(tǒng)中兩種不同類型的文件鏈接。它們的主要作用是解決文件的共享使用問(wèn)題。
????????硬鏈接(hard link)是指多個(gè)文件名指向同一個(gè)inode節(jié)點(diǎn),即同一個(gè)文件的數(shù)據(jù)塊。它的特點(diǎn)是:
- 不允許給文件指定不同的路徑;
- 不能跨分區(qū);
- 刪除一個(gè)硬鏈接并不影響其他硬鏈接和原文件,只有當(dāng)最后一個(gè)硬鏈接被刪除后,原文件才會(huì)被刪除。
????????軟鏈接(又稱符號(hào)鏈接,即 soft link 或 symbolic link)是指一個(gè)文件名指向另一個(gè)文件的路徑。它的特點(diǎn)是:
- 可以給文件指定不同的路徑;
- 可以跨分區(qū);
- 刪除軟鏈接并不影響原文件,但刪除原文件后,軟鏈接將失效。
硬鏈接
ln 目標(biāo)文件 硬鏈接文件名
????????可以看到進(jìn)行硬鏈接后,鏈接數(shù)由1變?yōu)榱?,而他們的inode編號(hào)是一樣的,這就是說(shuō)明兩個(gè)文件指向的是同一個(gè)文件。當(dāng)你將其中一個(gè)文件刪除后,會(huì)發(fā)現(xiàn)連接數(shù)又變回了1。
????????根據(jù)上面inode的數(shù)據(jù)結(jié)構(gòu)我們可知,其中有一個(gè)引用計(jì)數(shù)的變量,只要有新的指向就會(huì)++,指向減少就會(huì)--,當(dāng)沒有指向了才會(huì)真正的刪除。
硬鏈接的應(yīng)用
????????通過(guò)上圖我們可知,當(dāng)我們創(chuàng)建的是普通的文件時(shí),默認(rèn)的鏈接數(shù)為1,而我們創(chuàng)建了一個(gè)目錄后,默認(rèn)居然是2,這是為什么呢?請(qǐng)看下圖:
????????表示為本級(jí)目錄,而 .. 表示為上級(jí)目錄。. 和 .. 實(shí)際上就是硬鏈接!
軟連接
ln -s 目標(biāo)文件 軟鏈接文件名
????????需要注意的是:如下圖,和硬鏈接不同,軟鏈接指向的inode編號(hào)是不同的。那這個(gè)的作用又是干什么的呢?你可以理解為Windows的快捷方式,對(duì)于他的刪除不會(huì)影響原來(lái)的文件。
?????????????????????????感謝你耐心的看到這里?( ′???` )比心,如有哪里有錯(cuò)誤請(qǐng)?zhí)咭荒_作者o(╥﹏╥)o!?
????????????????????????????????? ? ? ?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-805205.html
????????????????????????????????????????????????????????????????????????給個(gè)三連再走嘛~??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-805205.html
到了這里,關(guān)于深入理解Linux文件系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!