当前位置 博文首页 > lyndon:文件大小 和 文件占用空间
创建一个文件 b.txt
$ echo -n "b" > b.txt
$ ls -lh b.txt
-rw-rw-r-- 1 liyongjun liyongjun 1 10月 2 16:53 b.txt
文件中仅存放一个字符 ‘b’ ,所以文件大小为 1
$ du -ah
4.0K ./b.txt
$ stat b.txt
File: ‘b.txt’
Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 922330 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ centli) Gid: ( 1000/ centli)
Access: 2020-10-02 16:47:00.496640070 +0800
Modify: 2020-10-02 16:59:34.705082876 +0800
Change: 2020-10-02 16:59:34.705082876 +0800
Birth: -
Size:文件的字节数
Blocks:块数
(ps:个人更倾向于这里应该写成 Sectors,即占用多少扇区)
IO Block:每块的字节数
文件存储在磁盘上,磁盘的最小存储单位叫做“扇区”(Sector)。每个扇区存储 512 字节。
操作系统读取硬盘时,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是 4KB,即连续 8 个 Sector 组成一个 block。
一个“块”只能被一个文件占用,即使一个文件只占用了“块”的一个字节,其他文件也不能再使用这个“块”存储数据。所以文件的占用空间为“块”的整数倍。
参考:
理解inode
文件属性中“大小”和“占用空间”的区别