今天我無意間在用ls命令的時候發現顯示的內容里的total,這個total代表着什么,引起了我的疑惑。
接下來開始解開它的神秘面紗。
total后面的數字是指當前目錄下所有文件所占用的空間總和,它是怎么計算的,我們先來看看每個文件的大小。(文件的單位是bytes)
我們將所有的文件大小加起來也只有3536bytes ,是遠遠沒有24kbytes的啊。
但是我們需要知道的是每個文件系統都規定的一個塊(block)的大小,我們可以通過命令getconf PAGESIZE 命令來查看數據塊規定的大小。
[root@vultr ssh-batch-believe]# getconf PAGESIZE 4096
我們可以看到我們的一個塊(block)的大小是4096bytes,我們還需要知道一個塊(block)只可以容納一個文件。所以上面的,每個文件都需要一個塊(block),上面有6個文件,也就是6個塊(block),也就是 6*4096 bytes 大小。 6*4096 bytes 也就是24k.和total上的值符合了。
我們這里再舉個例子,我們添加了一個大小是6368 bytes名為test的文件,我們可以在看看total的值。
total的值是32,也就是增加了8kbytes,兩個塊(block),我們實際的增加的文件大小為6368,這里是因為一個block是放不下這個文件的,只有兩個block才可以放下,雖然放完這個文件后,block里還有剩余空間,但是我們前面說到一個塊(block)只可以容納一個文件。所以后面如果新添加的文件只有用一個新的block.
最后我們還有一個很方便的查看和計算total的辦法。就是使用 ls 命令的 -s 選項。
-s 以塊大小為單位列出所有文件的大小
total的值就是第一列的值之和。