文件刪除原理
點擊查看軟鏈接、硬鏈接知識
目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、正藍(lán)網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
link計數(shù)器
Linux是通過link的數(shù)量來控制文件刪除的
只有當(dāng)一個文件不存在任何link的時候,這個文件才會被刪除
一般來說,每個文件都有2個link計數(shù)器:i_count和i_nlink
i_count?內(nèi)存引用計數(shù)器
當(dāng)前文件使用者(或被調(diào)用)的數(shù)量,當(dāng)一個文件被某一個進(jìn)程引用時,對應(yīng)i_count數(shù)就會增加
i_nlink?磁盤引用計數(shù)器
介質(zhì)連接的數(shù)量(硬鏈接的數(shù)量),當(dāng)創(chuàng)建文件的硬鏈接的時候,對應(yīng)i_nlink數(shù)就會增加
刪除命令rm
rm實際就是減少磁盤引用計數(shù)i_nlink
rm刪除常識
如果一個文件正在被某個進(jìn)程調(diào)用,而用戶卻執(zhí)行rm操作把文件刪除了,那么會出現(xiàn)什么結(jié)果呢?
?當(dāng)用戶執(zhí)行rm操作刪除文件后,再執(zhí)行l(wèi)s或者其他文件管理命令,無法再找到這個文件了,但是調(diào)用這個刪除的文件的進(jìn)程卻在繼續(xù)正常執(zhí)行,依然能夠從文件中正確的讀取及寫入內(nèi)容。
?這是因為rm操作只是將文件的i_nlink減少了,如果沒其它的鏈接i_nlink就為0了;但由于該文件依然被進(jìn)程引用,因此,此時文件對應(yīng)的i_count并不為0。
文件真正被刪除的條件 i_nlink=0 且 i_count=0