限制不在于嵌套子目录的深度(您可能有几十个,甚至更多),但在文件系统及其配额上.
具有非常长的文件路径也是不方便的(并且可能稍微低效).以编程方式,可以有几百甚至几千个字符的文件路径;但是人类的大脑无法记住这么长的文件路径.
大多数文件系统(在Linux上)都有一个固定的限制,它们的数量为inodes.
某些文件系统在包含一万个条目的目录中表现不佳(例如,因为搜索是线性的而不是二分法).你很难处理它们(例如,甚至ls *给出太长的输出).因此,有/ somepath / a / 0001 … / somepath / z / 9999而不是/ somepath / a0001 … / somepath / z9999可能是明智的
如果您的目录中有数千个用户,则可能需要例如用户首字母对用户进行分组,例如有/ some / path / A / userAaron / images / foobar和/ some / path / B / userBasile / images / barfoo等.所以/ some / path / A /只有几百个子目录等…
一个方便的经验法则可能是:避免每个目录中有超过几百个条目 – 子目录或文件.
某些Web应用程序将小数据块存储在SQL数据库的各个行中,并使用文件(可能生成其名称)用于较大的数据块,并将文件路径存储在数据库中.拥有数百万个文件,大多数只有几十个字节可能效率不高.
一些系统管理员也在文件系统上使用quotas.