我可以直接在ext3目录下有多less个文件?

我有一个根目录“data_0”。 在这个目录下有大约15,000个目录('a','b','c',…'aa','ab'…)。 在每个目录下有成千上万个非常小的文件(4〜10kB),每个文件有1000到2000个文件。

所有这一切导致3000万个文件。 我需要从'data_0'移动到'data_1'文件夹,但没有“2级”文件夹(a,b,c等),所以:

/data_0/a/1.txt --> /data_1/a_1.txt /data_0/a/2.txt --> /data_1/a_2.txt ... /data_0/ccc/989.txt --> /data_1/ccc_989.txt ... 

我能走多远呢? 这里的performance并不重要。 有没有逻辑上的限制或只是一个性能限制?

如果互联网上的陌生人是可信的,ext3文件夹可以包含的文件数量是没有限制的。 所以说ext3用户RedHat邮件列表 。 据说2.6内核允许在一个目录中的“数十亿”文件的理论上的允许。 你可能想调整dir_index ,使它运行顺利,如果你将在search文件。 在一个目录中还有大量文件的其他副作用,你可能想在这个StackOverflow线程中读取。

所以答案很可能是:“是的,但…”

单个目录中的文件数量没有逻辑上的限制,尽pipe单个目录获得更多文件会有明显的性能限制(我的经验法则是保持在1000以下,尽pipe在某些情况下我已经做了10000次) 。 文件系统上的文件总数有限制,由文件系统创build参数(inode总数)控制。 每个目录还有一个硬编码的32000个子目录(其中两个条目总是被....占据)。