目录中可以包含的文件数量是否有硬性限制?

目录中可以包含的文件数量是否有硬性限制?

想知道在 CentOS 6 中,目录中可以存储的文件数量是否有限制。有一个特定的目录可能有数百万个子目录。

除了存储容量之外,目录中可以包含的文件数量是否有限制?(我在这里假设“文件”可以表示文件或目录)。

非常感谢!

答案1

这取决于你的文件系统。我假设它是 ext4:

最大文件数是全局的,而不是每个目录的,它由创建文件系统时分配的 inode 数量决定。尝试运行以下命令来查看每个文件系统的 inode 数量。

    $ df -i
    Filesystem       Inodes  IUsed    IFree IUse% Mounted on
    /dev/sdb2       7864320 388119  7476201    5% /

根据此处,子目录的最大数量似乎是 64000(http://en.wikipedia.org/wiki/Ext4),另请参阅(http://kernelnewbies.org/Ext4)——表明它是无限的。

答案2

这取决于文件系统。ext3在给定目录中支持~32000 个子目录(不是文件!),ext4默认为 64000 个。xfs据我所知没有限制。

答案3

我想补充一下已经正确的答案,你应该考虑不要在一个目录中放置太多文件。大多数软件都不能很好地处理这个问题(例如 mc 会很慢,许多 gui 工具将无法使用)。最好创建一个嵌套文件夹的层次结构,并使用某种算法(文件名或内容的哈希值或任何其他可以均匀分布文件的方法)在其中分发文件。这就是许多成熟程序(例如 squid)所做的。

相关内容