一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Linux|Centos|Ubuntu|系統(tǒng)進(jìn)程|Fedora|注冊(cè)表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務(wù)器之家 - 服務(wù)器系統(tǒng) - Linux - Linux中文件與目錄對(duì)應(yīng)的硬鏈接與軟鏈接方式總結(jié)

Linux中文件與目錄對(duì)應(yīng)的硬鏈接與軟鏈接方式總結(jié)

2019-06-15 10:11segmentfault廈門(mén)大學(xué)陳黎棟 Linux

Linux中內(nèi)核會(huì)為文件分配inode節(jié)點(diǎn),而硬鏈接和軟鏈接的一大不同就是是否重新分配inode,這里我們就來(lái)做一個(gè)Linux中文件與目錄對(duì)應(yīng)的硬鏈接與軟鏈接方式總結(jié),需要的朋友可以參考下

硬鏈接
新建的文件是已經(jīng)存在的文件的一個(gè)別名,當(dāng)原文件刪除時(shí),新建的文件仍然可以使用。
硬鏈接特征:
1、擁有相同的 i節(jié)點(diǎn) 和相同的存儲(chǔ)block快,可以看做是同一個(gè)文件
2、可通過(guò)i節(jié)點(diǎn)識(shí)別,i節(jié)點(diǎn)號(hào)相同
3、不能跨分區(qū)
4、不能針對(duì)目錄使用
5、刪除文件,硬鏈接正常使用


軟鏈接
另外一種連接稱之為符號(hào)連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于Windows的快捷方式。它實(shí)際上是一個(gè)特殊的文件。在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。 
軟鏈接特征:
1、類似windows快捷方式
2、軟鏈接擁有自己的i節(jié)點(diǎn)和block快,但是數(shù)據(jù)塊中只保存原文件的文件名和i節(jié)點(diǎn)號(hào),并沒(méi)有實(shí)際的文件數(shù)據(jù)
3、lrwxrwxrwx l軟鏈接,軟鏈接文件權(quán)限都為rwxrwxrwx,但具體看原文件的權(quán)限
4、修改任意文件,另一個(gè)都改變
5、刪除原文件,軟鏈接不能使用
6、創(chuàng)建軟鏈接一定要寫(xiě)絕對(duì)路徑
注意軟鏈接的文件權(quán)限為777 但是最終權(quán)限有源文件決定 l表示軟鏈接文件。
一旦源文件刪除,軟鏈接將不能使用。(這是和硬鏈接的主要區(qū)別)
注:創(chuàng)建軟鏈接時(shí),源文件要始終使用絕對(duì)路徑,否則,若創(chuàng)建的軟鏈接和源文件不在同一個(gè)目錄時(shí),會(huì)找不到源文件。(硬鏈接不會(huì)有這種情況)
限制少,更靈活,推薦使用。


補(bǔ)充:
linux系統(tǒng)中的硬連接有兩個(gè)限制:不能跨越文件系統(tǒng)和不允許普通用戶對(duì)目錄作硬連接。至于第一個(gè)限制,很好理解,而第二個(gè)就不那么好理解 了。 對(duì)任何一個(gè)目錄用ls -l 命令都可以看到其連接數(shù)至少是2,這也說(shuō)明了系統(tǒng)中是存在硬連接的,而且命令ln -d 也可以讓超級(jí)用戶對(duì)目錄作硬連接,這些都說(shuō)明了系統(tǒng)限制對(duì)目錄進(jìn)行硬連接只是一個(gè)硬性規(guī)定,并不是邏輯上不允許或技術(shù)上的不可行。那么操作系統(tǒng)為什么要進(jìn) 行限制呢?答案可能有兩個(gè)。

先來(lái)說(shuō)第一個(gè),如果引入了對(duì)目錄的硬連接就有可能在目錄中引入循環(huán),那么在目錄遍歷的時(shí)候系統(tǒng)就會(huì)陷入無(wú)限循環(huán)當(dāng)中。也許您會(huì)說(shuō),符號(hào)連接不也可以引入循 環(huán)嗎,那么為什么不限制目錄的符號(hào)連接呢?原因就在于在linux系統(tǒng)中,每個(gè)文件(目錄也是文件)都對(duì)應(yīng)著一個(gè)inode結(jié)構(gòu),其中inode數(shù)據(jù)結(jié)構(gòu) 中包含了文件類型(目錄,普通文件,符號(hào)連接文件等等)的信息,也就是說(shuō)操作系統(tǒng)在遍歷目錄時(shí)可以判斷出符號(hào)連接,既然可以判斷出符號(hào)連接當(dāng)然就可以采取 一些措施來(lái)防范進(jìn)入過(guò)大的循環(huán)了,系統(tǒng)在連續(xù)遇到8個(gè)符號(hào)連接后就停止遍歷,這就是為什么對(duì)目錄符號(hào)連接不會(huì)進(jìn)入死循環(huán)的原因了。但是對(duì)于硬連接,由于操 作系統(tǒng)中采用的數(shù)據(jù)結(jié)構(gòu)和算法限制,目前是不能防范這種死循環(huán)的。

在說(shuō)明第二個(gè)原因之前,先來(lái)看看文件的dentry結(jié)構(gòu)在系統(tǒng)空間中長(zhǎng)什么樣子和它們是怎么存放在系統(tǒng)空間的。dentry結(jié)構(gòu)主要包含了文件名,文件的inode號(hào),指向父目錄dentry結(jié)構(gòu)的指針和其他一些與本次討論無(wú)關(guān)的指針,這里關(guān)鍵是那個(gè)指向父目錄的指針;系統(tǒng)中所有的dentry結(jié)構(gòu)都 是按雜湊值存放在雜湊表中的,這里的雜湊算法很重要,它是取文件名和文件的父目錄dentry結(jié)構(gòu)的地址一起雜湊運(yùn)算出雜湊值的。現(xiàn)在假設(shè)有兩個(gè)目錄 /a和/b,其中/b是我們通過(guò)ln -d命令建立起來(lái)的對(duì)/a的硬連接。這個(gè)時(shí)候內(nèi)核空間中就會(huì)存在一個(gè)/a的dentry結(jié)構(gòu)和一個(gè)/b的dentry結(jié)構(gòu),由上面的知識(shí)可知,/a和/b 目錄下面的每一個(gè)文件或目錄都各自有對(duì)應(yīng)的dentry結(jié)構(gòu)(因?yàn)殡m然/a目錄下面的文件名沒(méi)有改變,但是因?yàn)閐entry結(jié)構(gòu)有指向父目錄dentry 的指針和計(jì)算雜湊值時(shí)考慮了父目錄dentry結(jié)構(gòu)的地址,這個(gè)時(shí)候dentry結(jié)構(gòu)就分身乏術(shù)了),而且這種繼承還會(huì)影響到所有子目錄下面的文件,這樣 下來(lái)就會(huì)浪費(fèi)很多系統(tǒng)空間了,特別是如果被硬連接的目錄中存在大量文件和子目錄的時(shí)候就更加明顯了。這也許是第二個(gè)原因。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爱操综合网 | 亚洲女同在线观看 | 女人叉开腿让男人桶 | 加勒比成人 | 狠狠色婷婷狠狠狠亚洲综合 | 成人国产在线播放 | 精品国产免费第一区二区 | 韩国三级在线高速影院 | 日产精品卡一卡2卡三卡乱码工厂 | 丝瓜草莓香蕉绿巨人幸福宝 | 国产一区二区三区高清视频 | 黑帮大佬与我的365天2标清中文 | 第一次做m被调教经历 | 四虎影视永久在线观看 | 亚洲天堂免费 | 午夜福利理论片在线播放 | 国产精品永久免费视频观看 | 久久久无码精品无码国产人妻丝瓜 | 成人免费在线视频观看 | 污文啊好棒棒啊好了 | 国产91一区二区在线播放不卡 | 色综合综合色 | 赤色疑惑 | 亚洲精品第二页 | 久久艹综合| 俺去也亚洲色图 | 好大好猛好爽好深视频免费 | 胸大的姑娘中文字幕视频 | 日本片免费观看一区二区 | 美国复古性经典xxxxx | 视频国产精品 | 成年性香蕉漫画在线观看 | 午夜伦理 第1页 | 日韩精品一区二区三区中文在线 | 亚洲va国产日韩欧美精品色婷婷 | 被高跟鞋调教丨vk | 农村妇女野外牲交一级毛片 | 污污动图 | 探花 在线 | 成年美女黄网色大观看全 | 97影院网|