5
|
SO Stinks ennuikiller · 技术社区 · 14 年前 |
1
2
在Linux(或者更一般地说,UNIX类型的文件系统)中,文件名存储在目录条目inode中,其中包含目录中每个文件的(文件名、inode编号)映射列表。我的理解是,对于每个文件名,都有为名称\max字符保留的空间。实际上,在Linux上,max的名称是255。 因此,要回答您的问题,当创建文件系统时,没有为文件名保留空间,但是一旦创建了文件名,将为文件名保留最大字节数。此外,对于目录inode,我的理解是,至少在ext2/3/4空间上,根据需要以磁盘块(4KB,除非您做了非常奇怪的事情)的粒度分配空间。例如,一个目录至少占用4kb(加上父目录inode中的一个条目),如果(文件名,inode)对的列表不适合该4kb(减去其他开销,例如目录权限),它将分配一个新的4kb块来继续列表,依此类推(ext2/3使用间接块方案,而ext4使用扩展数据块)。 |
2
1
FAT16预分配。 FAT32使用一种变通方法来提供长文件名;随着文件名变长,需要额外的目录文件块来存储额外的字符,而目录文件是常规文件,因此这会消耗额外的磁盘空间。但是,最小的分配是一个集群,因此,除非附加的文件名存储超过集群边界,否则不会从原本可以使用的磁盘空间中消耗额外的磁盘空间。 我并不熟悉在UNIX类型的文件系统中如何处理文件名。 |
rs_ · 命令df-h提供100%的磁盘使用率,即使磁盘未满[关闭] 7 年前 |
Joe Lloyd · 服务器磁盘空间似乎不正确,为什么? 9 年前 |
Connor M · R使用RecordLinkage包 10 年前 |
SteeveDroz · 引擎盖下面的一团是什么? 10 年前 |