參考詳細分析du和df的統計結果為什麼不一樣
我的檔案系統,除了/media/haypin/lenovo、/boot/efi/之外的所有檔案系統都通過根目錄掛載在同乙個磁碟分割槽,則分別du -sh /;du -sh /media/haypin/lenovo/、du -sh /boot/efi/得到統計結果:
du是通過stat命令來統計每個檔案(包括子目錄)的空間占用總和,因此會對每個涉及到的檔案使用stat命令,速度較慢。如果統計目錄下掛載了其他檔案系統,那也會對掛載的檔案系統進行統計。所以du /統計的188g約等於根目錄掛載分割槽/dev/sda7的141g+/media/haypin/lenovo/掛載分割槽/dev/sda4的37g+/boot/efi/掛載分割槽/dev/sda1的29m。
另外,當刪除某檔案時其他程序在使用該檔案(其實是該檔案inode關聯的資料塊data block),則du命令無法對其統計,因為stat命令找不到該檔案(此時已擦除檔名和inode table項,inode map已經**該檔案的節點號,但block map還為其他程序使用著,並且檔案系統的superblock得等到block map**該檔案的資料塊後才更新已使用大小),所以du命令是不會統計到這一類「殭屍」檔案的大小的。但df命令是統計檔案所在檔案系統(所掛載的磁碟分割槽)的superblock,則df命令會統計到這一類「殭屍」檔案的大小。這也是造成du與df命令統計同乙個檔案系統時可能產生大小差異的原因。
檔案刪除時父目錄檔名的擦除、inode table專案的擦除、inode map的**、block map的**、data block的解關聯順序,詳見詳細分析du和df的統計結果為什麼不一樣,有非常清晰的圖示與說明,真大神
du命令和df命令區別
du檢視目錄大小,df檢視磁碟使用情況。du,disk usage,是通過搜尋檔案來計算每個檔案的大小然後累加,du能看到的檔案只是一些當前存在的,沒有被刪除的。他計算的大小就是當前他認為存在的所有檔案大小的累加和。df,disk free,通過檔案系統來快速獲取空間大小的資訊,當我們刪除乙個檔案的...
Linux下的命令 du與df
本片著重講解這兩個命令的用法。命令格式 du 選項 檔案 du命令有以下常見的幾個選項 a 顯示目錄中個別檔案的大小 b 顯示目錄或檔案大小時,以byte為單位 c 除了顯示個別目錄或檔案大小,還顯示所有目錄或檔案的總和 h 以k m g為單位,提高資訊的可讀性 s 顯示個別目錄大小時並不含子目錄大...
Linux命令之du命令df命令
顯示檔案或目錄所占用的磁碟空間。命令格式 du option 檔案 目錄 h 輸出檔案系統分割槽使用的情況,例如 10kb,10mb,10gb等 s 顯示檔案或整個目錄的大小,預設單位是kb 顯示當前目錄下所有檔案的大小 du sh 顯示總目錄的大小,但是不會列出目錄中的每乙個文 du sh 列出 ...