例如,正如ls -al所显示的:
drwxr-xr-x 9 jb jb 4.0K Mar 8 18:05 ./
drwx------ 49 jb jb 12K Mar 17 14:15 ../我假设这是存储inode元数据所需的最小空间,例如stat返回的元数据,但我不完全确定。
发布于 2013-03-17 23:14:29
典型的类Unix文件系统上的目录只是一个专门属性化的文件。一个象征性的链接也是如此。一些类似Unix的文件系统能够在inode中存储一个小文件,比如符号闪烁。这意味着不需要为文件分配任何块,而且由于文件大小计算不计算inode,所以文件的大小为零。
数据不能放入其inode中的文件必须占用与inode分开分配的某种最小存储单元。(然后,inode的数据空间通常被转换为指向该存储块的指针数组。)
最简单的策略是,所有的东西都被分成大小相同的不可分割的块,没有两个文件可以在一个块中共享存储。但是,某些文件系统(如Berkeley FFS )可以将块分解成分配给不同文件的片段,以减少浪费。
块大小是在文件系统创建时决定的,这是在寻址一个巨大磁盘和浪费小文件空间之间的一种折衷。典型的块大小是二次幂,从512左右开始(现在可能很少)。
如您所知,每个(非根目录)至少包含两个条目,因为即使是一个空目录也包含。然后..。链接。如果您看到非零值甚至是一个完全空的目录的大小,这意味着在给定的文件系统中,这两个基本目录条目太大,无法适应inode的微小数据区域。因此,目录数据占用单独分配的块或块片段。
看起来,在给定的文件系统上,块大小是4096,没有更小的片段。(否则,您有一个更大的块大小,4096是一个片段的大小。)一个目录开始占据一个4096块/片段,当将足够的条目添加到该目录中的空间不足时,该目录将增长到8192,然后增长到12 12,依此类推。
对.有很大的价值。指示父目录是一个大小目录,该目录与子目录的大小无关。
https://unix.stackexchange.com/questions/68255
复制相似问题