linux 子文件夹的最大允许深度是多少?

wsewodh2  于 2023-08-03  发布在  Linux
关注(0)|答案(4)|浏览(257)

起初我想问“什么是最大允许的子文件夹的windows操作系统”
但后来我想,也许我的网络托管服务提供商不是在windows上,而是在linux或其他平台上。所以我问什么是可能的最大允许子文件夹的所有主要的操作系统,一个网络主机提供商通常会使用。(说Linux、Mac或Windows安全吗?)
再一次,根据你的经验,网络托管网站是否限制了我们可以创建的子文件夹的数量?
(Why这个?因为我希望每个用户都有自己的文件夹,方便访问他们的图像。可以吗还是不好的做法?还是编程新手。)

u0njafvf

u0njafvf1#

限制不在于嵌套子目录的深度(可以有几十个,甚至更多),而在于文件系统及其配额。
另外,具有非常长的文件路径是不方便的(并且可能稍微低效)。从编程上讲,一个文件路径可能有几百甚至几千个字符;但是人脑不能记住如此长的文件路径。
大多数文件系统(在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

cetgtptt

cetgtptt2#

在Windows中,任何路径都有260个字符的限制。这包括文件名,因此文件不能包含超过260-directory path length的字符。
这意味着你可以有很多子目录,但是当你深入的时候,最大的文件名会变短。

flvlnr44

flvlnr443#

还有一点非常重要,那就是性能。使用Windows,如果您开始获得超过5 k的文件,它开始变慢,10 k它是爬行和50 k变得完全无法使用!

vuv7lop3

vuv7lop34#

Windows对路径长度的限制为260个字符,例如,可能是这样的:

C:\dir name 1st nested level\sub dir name 2nd nested level\...deepest nested level\filename.ext

字符串
您可以根据自己的判断使用这个长度,例如,您可以给予一个总共250个字符的非常描述性的目录名,而您只剩下很少的字符filename.ext。事实上,你可以用一个很长的名字做一个单独的自定义目录,比如:

C:\Your very long and descriptive folder name of 260 char is this one here and you don't have much chars left to be used for the file names that you need to give to the files contained inside this directory with a lot of useful informations you named\file.ext


正如你在上面看到的,你只留下了足够的字符来给像file.ext这样的文件给予一个8个字符的长度,包括文件名本身、文件的点和扩展名。
现在,考虑到dir名称的长度至少为1个字符,您还可以执行以下操作:

C:\Y\o\u\r\v\e\r\y\l\o\n\g\a\n\d\d\e\s\c\r\i\p\t\i\v\e\f\o\l\d\e\r\n\a\m\e\o\f\2\6\0\c\h\a\r\i\s\t\h\i\s\o\n\e\h\e\r\e\a\n\d\y\o\u\d\o\n\t\h\a\v\e\m\u\c\h\c\h\a\r\s\l\e\f\t\t\o\b\e\u\s\e\d\f\o\r\t\h\e\f\i\l\e\n\a\m\e\s\t\h\a\t\y\o\u\n\e\e\d\t\o\g\a\Filena.ext


如果你把“\”字符的出现数算到上面的路径中,你会发现它们总共有124个...:我不能在路径深度上走得更远,因为Win OS显示了一个关于路径太长的建议,并阻止了进一步子目录的创建。但你仍然有一个简短的文件名和它的扩展名思想的空间。
我还注意到,Win在管理一个很长的嵌套路径内的任何内容时变得非常缓慢。就连删除那条长长的路径也花了七八秒:通常只需要一眨眼的时间。可能是由于递归算法的缓慢,必须更新文件系统,减缓了操作的创建,删除和管理的内容到一个如此深的路径。
当路径太长时,操作系统抛出的另一条消息是关于其删除:操作系统建议您该路径对于回收站来说太长,将被完全删除,而不会通过回收站本身:这可能是一个有点问题的情况下,你需要恢复任何内容后,从已删除的目录,是不是到斌.
所以恕我直言(至少在我的系统上),通常最好不要使用如此深的嵌套路径:最好在最大10-15级左右之前停止。存储到我的硬盘驱动器的最长路径是23级深tho。他们仍然工作得很好的速度,但这是一个麻烦,找到一些到他们只是遵循的道路。对于文档,我很少嵌套超过5-6个目录级别。

相关问题