目录在RH5 Linux上有多less个子目录?

我的程序正在处理数字,并根据结果创build一个存储所有数据的目录。 昨晚它失败了。 Mkdir不再工作。

检查出来后,我看到我的数据目录下有近36,000个子目录。

删除其中的一些有助于对抗事业。

有了这个,我问你:是否有一个神奇的数目的子目录下可能存在一个父目录? 这与存储的数据量有关吗? (我不这么认为,但还是要确认一下)

在上面的情况下,我可以减less目录的数量,也许gzip一些..是否解决了这个问题?

一般在什么情况下mkdir会失败?

谢谢

取决于你正在使用的文件系统。 Reiserfs(我最喜欢的)每个目录最多可以处理2 ^ 31个文件(这是20亿),filesys中最多可以处理2 ^ 32(40亿个)文件。 它可以处理多达64000个子目录在一个目录中

Ext2(因此也是ext3)限制每个目录32000个子目录。 每个目录文件的最大数目在理论上是无限的(实际上大约130兆),但性能变得可怕,超过10-15万个文件。 filesys上的最大文件总数受限于您拥有的inode数量。 使用1 gig文件系统和4k块/ inode比率(默认值),您有大约260000个inode,这也是您可以拥有的最大文件数。

目录中有多less个文件太多? (从网上下载数据)

这取决于您使用的文件系统。 对于ext3, 每个目录31998个子目录是有限制的。 在ext3上,如果你有很多非常小的文件(每个inode的块的比例可以设置为fs创build时间),那么在耗尽空间耗尽之前,也可能耗尽inode。

更现代的文件系统通常具有更高的限制,或者仅受可用磁盘空间的限制。

这就是说,许多目录或文件通常表明你做错了什么。 考虑以某种二进制科学格式(如netcdf,hdf5或数​​据库)存储数据。

你有一个ext4文件系统。 ext4的最大子目录是64,000。

编辑:它可以在技术上更高使用ext4的“dir_nlink”function。