将文件存储在目录中...有限制吗?

Mik*_*rry 3 linux filesystems directory limitations

我正在使用 CentOS 5 和 Plesk 9(64 位),我正在运行一个网站,用户将在其中上传图片。对于 64 位操作系统,我可以存储的文件数量有限制吗?我只关心性能和提供文件。我不希望有 4 个目录深度分散的文件。但是,我希望在某个时候我可以拥有 200-30 万张图像。

voy*_*ger 6

如果您使用的是 ext3,我发现了这句话(警告:西班牙语网站)

“单个目录中有 32k (32768) 个子目录的限制,这个限制可能只是学术兴趣,因为很多人甚至没有那么多文件(尽管巨大的邮件服务器可能需要记住这一点)。 ext2 inode 规范允许超过 100 万亿个文件驻留在单个目录中”

进一步阅读表明 ext3没有32K 限制,这可以通过经验证明

a=0; i=1; while [ $a == 0 ]; do touch $i; a=$?; let i++; done
Run Code Online (Sandbox Code Playgroud)

但它确实有一个 32K 的文件夹限制,可以用

a=0; i=1; while [ $a == 0 ]; do mkdir $i; a=$?; let i++; done
Run Code Online (Sandbox Code Playgroud)

这个(毫无根据的)声明

ReiserFS 在单个目录中处理数十万个文件时完全没有问题。flabdablet - 2007 年 2 月 1 日

这个来自姊妹网站 stackoverflow.com 的问题也有帮助。

一般来说:

  • 还有就是对目录的数量有限制,
  • 应该将文件/目录保持在 32K 以下,但可以走得更远,
  • 您使用的文件系统很重要。

  • 请注意,即使 ReiserFS 的结构能够很好地处理庞大的目录,任何扫描目录的程序也需要很长时间才能完成。(即shell模式匹配。真的很痛) (3认同)