今天我无意间在用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的值就是第一列的值之和。