新聞中心

圖 1 ext4 文件系統(tǒng)示意圖
ext4 文件系統(tǒng)會(huì)把分區(qū)主要分為兩大部分(暫時(shí)不提超級(jí)塊):小部分用于保存文件的 inode (i 節(jié)點(diǎn))信息;剩余的大部分用于保存 block 信息。
inode 的默認(rèn)大小為 128 Byte,用來記錄文件的權(quán)限(r、w、x)、文件的所有者和屬組、文件的大小、文件的狀態(tài)改變時(shí)間(ctime)、文件的最近一次讀取時(shí)間(atime)、文件的最近一次修改時(shí)間(mtime)、文件的數(shù)據(jù)真正保存的 block 編號(hào)。每個(gè)文件需要占用一個(gè) inode。大家如果仔細(xì)查看,就會(huì)發(fā)現(xiàn) inode 中是不記錄文件名的,那是因?yàn)槲募涗浽谖募谀夸浀?block 中。
block 的大小可以是 1KB、2KB、4KB,默認(rèn)為 4KB。block 用于實(shí)際的數(shù)據(jù)存儲(chǔ),如果一個(gè) block 放不下數(shù)據(jù),則可以占用多個(gè) block。例如,有一個(gè) 10KB 的文件需要存儲(chǔ),則會(huì)占用 3 個(gè) block,雖然最后一個(gè) block 不能占滿,但也不能再放入其他文件的數(shù)據(jù)。這 3 個(gè) block 有可能是連續(xù)的,也有可能是分散的。
由此,我們可以知道以下 2 個(gè)重要的信息:
- 每個(gè)文件都獨(dú)自占用一個(gè) inode,文件內(nèi)容由 inode 的記錄來指向;
- 如果想要讀取文件內(nèi)容,就必須借助目錄中記錄的文件名找到該文件的 inode,才能成功找到文件內(nèi)容所在的 block 塊;
了解了 Linux 系統(tǒng)底層文件的存儲(chǔ)狀態(tài)后,接下來學(xué)習(xí) ln 命令。
ln 命令用于給文件創(chuàng)建鏈接,根據(jù) Linux 系統(tǒng)存儲(chǔ)文件的特點(diǎn),鏈接的方式分為以下 2 種:
- 軟鏈接:類似于 Windows 系統(tǒng)中給文件創(chuàng)建快捷方式,即產(chǎn)生一個(gè)特殊的文件,該文件用來指向另一個(gè)文件,此鏈接方式同樣適用于目錄。
- 硬鏈接:我們知道,文件的基本信息都存儲(chǔ)在 inode 中,而硬鏈接指的就是給一個(gè)文件的 inode 分配多個(gè)文件名,通過任何一個(gè)文件名,都可以找到此文件的 inode,從而讀取該文件的數(shù)據(jù)信息。
ln 命令的基本格式如下:
[root@localhost ~]# ln [選項(xiàng)] 源文件 目標(biāo)文件
選項(xiàng):
- -s:建立軟鏈接文件。如果不加 "-s" 選項(xiàng),則建立硬鏈接文件;
- -f:強(qiáng)制。如果目標(biāo)文件已經(jīng)存在,則刪除目標(biāo)文件后再建立鏈接文件;
【例 1】創(chuàng)建硬鏈接:
[root@localhost ~]# touch cangls
[root@localhost ~]# ln /root/cangls /tmp
#建立硬鏈接文件,目標(biāo)文件沒有寫文件名,會(huì)和原名一致
#也就是/tmp/cangls 是硬鏈接文件
【例 2】創(chuàng)建軟鏈接:
[root@localhost ~]# touch bols
[root@localhost ~]# In -s /root/bols /tmp
#建立軟鏈接文件
這里需要注意的是,軟鏈接文件的源文件必須寫成絕對(duì)路徑,而不能寫成相對(duì)路徑(硬鏈接沒有這樣的要求);否則軟鏈接文件會(huì)報(bào)錯(cuò)。這是初學(xué)者非常容易犯的錯(cuò)誤。
標(biāo)題名稱:Linuxln命令:建立鏈接(硬鏈接和軟鏈接)文件
當(dāng)前路徑:http://www.5511xx.com/article/ccsdojg.html


咨詢
建站咨詢
