linux目录数有限制吗?

linux目录数有限制吗?

先有台WEB服务器.
准备将数据库内容全部生成静态文件。
为了seo我们这样做:
不是单独生成xxx.html格式,
而是生成xxx/index.html格式。
由于数据量很大,可能会生成上万个目录.而且以后还要增长.
但有个疑惑是linux对目录数目有限制吗?
如果有,那对文件数有没有?
在同一个路径下,一级子目录的个数限制为 31998 。如果你的应用生成的目录可能会超过这个数,那要注意进行目录分级。例如,如果目录名为数字的话,可以将数字除以10000后的整数值做为父目录名(/data/1/13892);如果是目录名为字幕的,可以用前几个字符来做为父一级目录(/data/ab/abcdefg)等等

解决方法:

得到一个目录下一级子目录的总数   
  ls   -F   |   grep   /   |wc

1、创建子目录

2、linux为了cpu的搜索效率而规定的,要想改变数目大概要重新编译内核.



二、 文件数目限制:

每个文件对应一个inodes ,如果iodes没有了,那就算有空间也不能再写文件了。

tune2fs -l /dev/hda2 可以看当前分区的iodes信息

Free inodes:              374919



2种解决办法:   
  1.   重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)   
   
  2.   使用loopback文件系统临时解决   
        在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。