关于文件系统,文件占用空间和目录占用空间的问题

2018-07-29 12:14:14 +08:00
 sy52676
学到文件系统管理这里,有一些不明白的地方:

block size 是 4k

目录内文件少的话占用一个 block,也是 4k

但是为什么一个很小的文件,显示的占用空间是实际的占用空间而不是 4k 呢?

书上说,即使只有很少的内容,也会分配一个 block 给它,而且这个 block 是不能再使用的

那应该占 4k 不是吗?

希望有明白的老哥不吝赐教!
3135 次点击
所在节点    Linux
10 条回复
Andiry
2018-07-29 12:19:36 +08:00
不同的文件系统实现不同,有的小文件可以共享块,有的把文件内容和元数据放一起,大致如此
niubee1
2018-07-29 12:28:24 +08:00
操作系统显示的又不是直接把占了几个块就直接乘以 4K 返回给你的, 你还是多看看文件系统的实现更好一点. 其实自己实现一遍更能够搞明白为什么要这么设计
des
2018-07-29 12:28:44 +08:00
在 NTFS 上面看到的,大小 2.85kb,占用 4.00kb
确实是占了一个块
lance6716
2018-07-29 12:43:05 +08:00
Unix File System 还是啥,看的哪本书
kliux
2018-07-29 12:44:55 +08:00
路过。
msg7086
2018-07-29 14:38:05 +08:00
有些文件系统支持内联数据,可以把少量的文件内容直接写入 inode 或者类似的元数据里,不需要单独开一个 block / cluster。
sxzzsf
2018-07-29 18:19:58 +08:00
用的什么命令查看的占用空间?
du -s file
返回占用的空间
sy52676
2018-07-29 22:51:22 +08:00
@sxzzsf ll file 或者用 du 都是一样的
sy52676
2018-07-29 22:52:07 +08:00
@msg7086 是 EXT4 哦 这个文件系统是有这样的机制吗?
msg7086
2018-07-30 03:16:13 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX