文件系统最多可以包含多少个文件?

文件系统最多可以包含多少个文件?

给定 Ubuntu 上 ext4 文件系统上目录条目的当前结构,文件系统可以包含的最大文件数是多少?

文件系统所能容纳的最大文件数的一般计算方法是什么?

答案1

Ext4 理论上最多可容纳 40 亿个文件,这受其用于标识每个文件的 inode 编号大小限制(ext4 使用 32 位 inode 编号)。不过,正如 John 所说,ext4 静态分配 inode 表,因此实际限制是在创建文件系统时设置的。

df 命令显示文件系统上可用 inode 的数量:

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4 还支持每个目录中无限数量的子目录,但默认限制为 64,000。这是可配置的 - 请参阅Kernel Newbies 上的 ext4 文章

有关详细信息,请参阅For more information, see新的 ext4 文件系统:当前状态和未来计划来自 2007 年 Linux 研讨会。

答案2

本质上没有一个;这取决于具体情况。当你创建一个 ext4 文件系统时,你决定索引节点表,它又控制着文件系统一次可以容纳的目录或文件的总数。

答案3

不是 Ubuntu,而是在 Redhat Linux 上,当对包含 300 万个文件的目录运行基本命令(例如 find)时,会因“参数过多错误”而失败。如果不包含任何参数,ls 会成功运行,但只要添加过滤参数,就会因相同的错误而失败。

假设这些基本命令的可靠性是一项强制性要求,我认为 300 万个文件太多了。

相关内容