Linux下檔案刪除的原理

2021-08-08 13:28:17 字數 1193 閱讀 7568

linuxlink的數量來控制檔案刪除的。只有當乙個檔案不存在任何link的時候,這個檔案才會被刪除。一般來講,每個檔案都有兩個link計數器:i_counti_link 

i_count的意義是當前檔案使用者(或被呼叫)的數量     當乙個檔案被某乙個程序引用時,對應的這個值就會增加 

i_nlink的意義是介質連線的數量(硬鏈結的數量)    當建立檔案的硬鏈結的時候,這個值就會增加 

可以理解為i_count是記憶體引用計數器,i_nlink是硬碟的引用計數器

rm命令原理

對於刪除命令rm而言,實際上就是減少磁碟引用計數i_nlink

q:如果乙個檔案正在被某個程序呼叫,而使用者卻執行rm把檔案刪除了,那麼會出現什麼結果?當使用者執行rm刪除檔案後,再執行ls或其他檔案管理命令,無法再找到這個檔案了,但是呼叫這個刪除的檔案的程序卻在繼續正常執行,依然能夠從檔案中正確的讀取及寫入內容,這又是為什麼呢?

a:rm操作只是將檔案的i_nlink減少了,如果沒有其它的鏈結i_nlink就為0了。但是由於該檔案依然被程序引用,因此,此時檔案對應的i_count並不   為0,所以執行rm操作,系統並沒有真正的刪除這個檔案,只有當i_nlinki_count都為0的時候,這個檔案才會被真正的刪除。也就是說,必須要解除該程序對該檔案的呼叫,才能真正的刪除。

q:當檔案沒有被呼叫,執行了rm操作之後,還能找回被刪除的檔案嗎?

實際遇到的問題

q:web伺服器磁碟空間不夠了,刪除了所有無用日誌還是顯示磁碟空間不足,但是du -sh發現磁碟空間的佔用率很小,這是為什麼呢?是什麼導致磁碟空間不足?

a:刪除命令只是刪除了檔案的乙個i_nlink,但是其他程序正在使用這些log檔案,apachetomat,重啟這些服務就好啦!

Linux下檔案刪除的原理

lniux下控制檔案真正被刪除的計數器 linux是link的數量來控制檔案刪除的。只有當乙個檔案不存在任何link的時候,這個檔案才會被刪除。一般來講,每個檔案都有兩個link計數器 i count和i link 可以理解為i count是記憶體引用計數器,i nlink是硬碟的引用計數器 rm命...

描述linux下檔案刪除的原理

linux檔案刪除原理 linux是通過link的數量來控制檔案刪除的,只有當乙個檔案不存在任何link的時候,這個檔案才會被刪除。一般來說,每個檔案都有2個link計數器 i count 和 i nlink。i count的意義是當前檔案使用者 或被呼叫 的數量,i nlink 的意義是介質連線的...

Linux檔案刪除原理

linux檔案刪除原理 linux是通過link的數量來控制檔案刪除的,只有當乙個檔案不存在任何link的時候,這個檔案才會被刪除。一般來說,每個檔案都有2個link計數器 i count 和 i nlink。i count的意義是當前檔案使用者 或被呼叫 的數量,i nlink 的意義是介質連線的...