Unix文件夹最多可以容纳多少个文件?
我认为它将与文件数相同。
Unix文件夹最多可以容纳多少个文件?
我认为它将与文件数相同。
Answers:
在当前所有的Unix文件系统上,目录可以容纳几乎无限数量的文件。而“无限”则受磁盘空间和inode限制-无论先用尽。
对于较旧的文件系统设计(ext2,UFS,HFS +),如果目录中有许多文件,则事情往往会变慢。通常情况下,大约10,000个文件开始变得痛苦。使用更新的文件系统(ReiserFS,XFS,ZFS,UFS2),您可以在目录中拥有数百万个文件,而不会遇到一般的性能瓶颈。
但是,目录中包含这么多文件的情况没有经过良好的测试,并且有很多工具无法通过该测试。例如,定期的系统维护脚本可能会拒绝。
我很高兴地在UFS2上使用了包含数百万个文件的目录,直到我想删除该目录为止才发现问题,这花了几天的时间。
我假设您正在考虑将许多文件存储在一个地方,不是吗?
大多数现代的Unix文件系统都可以在一个目录中放置许多文件,但是遵循路径,列出文件等操作涉及对文件列表的线性搜索,如果列表太大,则会变得很慢。
我似乎回想起听到的话,对于大多数实际用途来说,成千上万的太多了。通常的解决方案是打破分组。那是,
/some/path/to/dir/a/
/some/path/to/dir/b/
...
/some/path/to/dir/z/
并根据它们的哈希将文件存储在适当的子目录中basename
。选择一个方便的哈希,第一个字符可能适用于简单情况。
克里斯蒂安·丘皮图(Cristian Ciupitu)在评论中写道,XFS以及其他可能非常新的文件系统都使用log(N)
可搜索的结构来保存目录内容,因此可以大大改善此约束。