新聞中心

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


咨詢
建站咨詢
