Filesystems
ext4 如何決定文件的塊數?
我正在使用
stat
基本上顯示 inode 資訊的命令。雖然我顯示的是一個小文件(146 個字元)的資訊,但它顯示了 8 個塊。我想知道為什麼會這樣?由於頁面的大小應該是 4KB,我希望這個數字是 1。順便說一句,我使用的文件系統是 ext4。為您提供更多詳細資訊:更多 tmp.sh
#DATE=$(date +"%Y%m%d_%H%M%S") #cp /var/log/filter.log /var/log/logHistory/filter_{$DATE}.log dd=$(date --date='-1 day' +"%Y%m%d") rm filter_$dd*
統計tmp.sh
File: ‘tmp.sh’ Size: 146 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 1835522 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/timestring) Gid: ( 1000/timestring) Access: 2016-05-05 17:34:08.251864800 -0700 Modify: 2015-01-22 20:40:18.971521274 -0800 Change: 2015-01-22 20:40:18.975521274 -0800 Birth: -
報告的“塊”
stat()
為 512 字節單位。ext4 使用的正常塊大小是 4kb,即這些“塊”中的 8 個。這意味著 ext4 上的文件使用的空間必須是 8 個“塊”的整數倍,因此任何小於或等於 4096 字節的文件使用的最小大小是 8512 字節塊。
ext4 文件系統在創建文件時**推測文件的大小。**從此連結引用以下內容:
首次創建文件時,塊分配器會推測性地為文件分配 8KiB 的磁碟空間,假設空間將很快被寫入。當文件關閉時,未使用的推測分配當然會被釋放,但如果推測是正確的(通常是完整寫入小文件的情況),則文件數據將在單個多塊範圍內寫入。