![*nix 文件系统上文件夹的典型文件限制是多少?](https://linux22.com/image/42315/*nix%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%8A%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E5%85%B8%E5%9E%8B%E6%96%87%E4%BB%B6%E9%99%90%E5%88%B6%E6%98%AF%E5%A4%9A%E5%B0%91%EF%BC%9F.png)
显然,如果你把很多文件放在一个文件夹中,各种文件操作的效率就会下降(例如ls
需要花费很长时间)很多更长)。但是,在一个文件夹中可以存放多少个文件才不会让您感到窒息呢?显然,这可能因文件系统而异,但我认为它们至少在限制上是相似的。您是否可以将文件塞入其中,直到磁盘空间用完,或者遇到某种限制,例如您只能将 65536 个(或 2 的其他倍数)文件放入一个文件夹中,然后您的文件系统就会出现问题?
我对 jfs 最感兴趣,因为我主要将其用于大型分区,但了解一般的 *nix 文件系统会很有帮助。
答案1
在旧的 UFS 中,目录大小仅受磁盘空间的限制,因为目录只是文件,与其他文件一样,其长度实际上是无限的。我不知道,但预计 JFS 也没有什么不同。
至于多少才算太多,这让我想起了一个经理的故事,他注意到当机器上的用户超过8个时,性能急剧下降,所以他要求系统管理员找到代码中的8并更改它到 16。重点是没有 8,它是整个系统的一个新兴属性。如何知道多大算太大?唯一实用的方法是添加条目,直到花费的时间超过您想要的时间为止。这显然是一种相当主观的方法,但没有其他方法。
如果您希望存储 65k 以上的文件,可能有更好的方法,具体取决于数据的性质以及您希望访问数据的方式。