查看论坛隐藏链接_软连接与硬链接的区别
點(diǎn)擊上方藍(lán)色“后端開發(fā)雜談”關(guān)注我們, 專注于后端日常開發(fā)技術(shù)分享
硬鏈接與軟連接的聯(lián)系與區(qū)別
文件都有文件名和數(shù)據(jù), 這在Linux上被分為兩部分: 用戶數(shù)據(jù)(user data) 與 元數(shù)據(jù)(metadata). 用戶數(shù)據(jù), 即文件數(shù)據(jù)塊( data block), 數(shù)據(jù)塊是記錄文件真實(shí)內(nèi)容的地方; 元數(shù)據(jù)是文件的附加信息, 如文件大小, 創(chuàng)建時(shí)間, 所有者等信息. 在Linux中, 元數(shù)據(jù)中的inode號(inode是文件元數(shù)據(jù)的一部分但其實(shí)不包含文件名, inode號即索引節(jié)點(diǎn)號)才是文件的唯一標(biāo)識而非文件名.
Linux系統(tǒng)中查看 inode 號可使用 stat 或 ls -i.
為了解決文件的共享使用, Linux系統(tǒng)引入了兩種鏈接: 硬鏈接(hard link)與軟連接(又稱符號鏈接,即soft link或symbolic link) 鏈接為Linux系統(tǒng)解決了文件的共享使用, 還帶來了隱藏文件路徑, 增加權(quán)限安全以及節(jié)省存儲等好處. 若一個(gè)inode號對應(yīng)多個(gè)文件名, 則稱這些文件為硬鏈接. 換言之, 硬鏈接就是同一個(gè)文件使用了多個(gè)別名.
硬鏈接的特性:
文件有相同的inode及data block, 權(quán)限(ower, rwx)
只能對已存在的文件進(jìn)行創(chuàng)建;
不能交叉文件系統(tǒng)進(jìn)行硬鏈接的創(chuàng)建;
不能對目錄進(jìn)行創(chuàng)建, 只可對文件創(chuàng)建;
刪除一個(gè)硬鏈接文件并不影響其他有相同inode號的文件
文件old.file與hard.link有著相同的inode號及文件權(quán)限. inode是隨著文件的存在而存在, 因此只有當(dāng)文件存在時(shí)才可創(chuàng)建硬鏈接, 即當(dāng)inode存在且鏈接計(jì)數(shù)器(Links)不為0時(shí).
inode號僅在各文件系統(tǒng)下是唯一的, 當(dāng)Linux掛載多個(gè)文件系統(tǒng)后將出現(xiàn)inode號重復(fù)的現(xiàn)象, 因此硬鏈接創(chuàng)建時(shí)不可跨文件系統(tǒng).
硬鏈接不能對目錄創(chuàng)建是受限于文件系統(tǒng)的設(shè)計(jì). 現(xiàn)Linux文件系統(tǒng)中的目錄均隱藏了兩個(gè)特殊的目錄: 當(dāng)前目錄(.) 和 父目錄(..). 查看這兩個(gè)特殊目錄的inode號可知其實(shí)這兩個(gè)目錄就是兩個(gè)硬鏈接. 若系統(tǒng)允許對目錄創(chuàng)建硬鏈接, 則會產(chǎn)生目錄環(huán).
. 目錄的硬鏈接數(shù)量的2 (當(dāng)前目錄下的 . 和 在父目錄下的目錄) .. 目錄的硬鏈接數(shù)量是2+n n是當(dāng)前目錄下的子目錄的個(gè)數(shù)
軟連接與硬鏈接不同, 若文件用戶數(shù)據(jù)塊中存放的內(nèi)容是另一文件的路徑名的指向, 則該文件就是軟連接. 軟連接就是一個(gè)普通文件,只是 數(shù)據(jù)塊內(nèi)容有點(diǎn)特殊. 軟連接有著自己的inode號以及用戶數(shù)據(jù)塊. 因此軟連接的創(chuàng)建與使用沒有類似硬鏈接的諸多限制:
軟連接有自己的文件屬性及權(quán)限等(數(shù)據(jù)塊的大小是0);
可對不存在的文件或目錄創(chuàng)建軟連接;
軟連接可交叉文件系統(tǒng);
軟連接可對文件或目錄創(chuàng)建;
創(chuàng)建軟連接時(shí), 鏈接計(jì)數(shù)i_nlink不會增加;
刪除軟連接并不影響被指向的文件, 但若被指向的原文件被刪除, 則相關(guān)軟連接被稱為死鏈接(即dangling link)
軟鏈接數(shù)據(jù)訪問:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?
當(dāng)然軟連接的用戶數(shù)據(jù)也可以是另一個(gè)軟連接的路徑, 其解析過程是遞歸的. 但需要注意: 軟連接創(chuàng)建時(shí)原文件的路徑指向使用絕對路徑較 好. 使用相對路徑創(chuàng)建的軟連接被移動后該軟鏈接將會成為一個(gè)死鏈接.
總結(jié)
以上是生活随笔為你收集整理的查看论坛隐藏链接_软连接与硬链接的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pylucene构建索引_java-Ap
- 下一篇: python实现滑动窗口平均_数据流滑动