![目录中可以包含的文件数量是否有硬性限制?](https://linux22.com/image/801492/%E7%9B%AE%E5%BD%95%E4%B8%AD%E5%8F%AF%E4%BB%A5%E5%8C%85%E5%90%AB%E7%9A%84%E6%96%87%E4%BB%B6%E6%95%B0%E9%87%8F%E6%98%AF%E5%90%A6%E6%9C%89%E7%A1%AC%E6%80%A7%E9%99%90%E5%88%B6%EF%BC%9F.png)
想知道在 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)所做的。