UNIX 文件系统的文件数量有限制吗?
答案1
这取决于文件系统的类型。如果您使用具有默认参数的 ext4,则最多可以拥有:
- 总计 40 亿个文件。
- 单个目录中有 64000 个子目录。
- 单个文件最大为16TB。
其中一些是可配置的,并且显然受介质上的实际存储空间限制。最好阅读文件系统类型的文档。
如果您谈论的是进程可以同时打开的文件句柄数,那么这取决于您的系统。ulimit -a
将在 Linux 系统上告诉您,并且可能默认为 1024。
注意:数字取自 ext4 维基百科页面。
答案2
如果您担心限制,那么使用 ZFS 就可以摆脱它们。
引自ZFS 常见问题解答:
ZFS 有哪些限制?
ZFS 的限制被设计得非常大,以至于在任何实际操作中都不会遇到。ZFS 可以在每个存储池、文件系统、文件或文件属性中存储 16 EB。ZFS 可以存储数十亿个名称:目录中的文件或目录、文件系统中的文件系统或文件系统的快照。ZFS 可以存储数万亿个项目:文件系统中的文件、池中的文件系统、卷或快照。
答案3
这取决于您所指的文件系统和容器 - 在目录中,在卷中。请参阅此关联有关 EXT3 文件系统的详细信息。
文件系统创建时会设置最大 inode 数(因此也是最大文件和目录数)。如果 V 是以字节为单位的卷大小,则默认 inode 数为 V/213(或块数,以较小者为准),最小 inode 数为 V/223。对于大多数应用程序来说,默认值已足够。一个目录中的最大子目录数固定为 32000。
其他文件系统也定义了类似的参数。