linux一个文件夹内最多能放多少文件

linux一个文件夹内最多能放多少文件,第1张

linux的ext3文件系统一级子目录的个数默认为31998(个),准确地说是32000个。

Linux为了cpu的搜索效率而规定的,要想改变数目限制需要重新编译内核。在kernel代码中有这样的:

include/linux/ext2_fs.h:#define EXT2_LINK_MAX 32000

include/linux/ext3_fs.h:#define EXT3_LINK_MAX 32000

什么说31998个呢?这是因为mkdir创建一个目录时,目录下默认就会创建两个子目录的,一个是.目录(代表当前目录),另一个是..目录(代表上级

目录)。这两个子目录是删除不掉的,“ rm . ” 会得到“rm: cannot remove `.' or

`..'”的提示。所以32000-2=31998。

ext3文件系统下单个目录里的最大文件数无特别的限制,是受限于所在文件系统的inode数。

在一个目录下,touch了100万个文件是没有问题的。但是肯定会受到所在文件系统的inode数的限制。

df -i /dev/sdaX或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令输出结果是一样的,但是跟df所得出的可用inode数会有些误差。

网上有两种解决inode数限制的办法如下

2.1 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)

2.2

使用loopback文件系统临时解决:在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统

中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。

句柄数。

inux最大打开文件句柄数,即打开文件数最大限制,就是规定的单个进程能够打开的最大文件句柄数,Socket连接也算在里面,默认大小1024个。

Linux是一种免费使用和自由传播的类UNIX *** 作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。

ulimit里的最大文件打开数量的默认值如果在limits.conf里没有设置,则默认值是1024,如果limits.con有设置,则默认值以limits.conf为准。例如我换了一台机器,登录进去,ulimit -n显示如下:[root@zk203 ~]# ulimit -n2000这是因为我的limits.conf里的文件打开数是2000,如下:[root@zk203 ~]# cat /etc/security/limits.confroot soft nofile 2000root hard nofile 2001如果limits.conf里不做任何限制,则重新登录进来后,ulimit -n显示为1024。 [root@zk203 ~]# ulimit -n1024 ulimit修改后生效周期修改后立即生效,重新登录进来后失效,因为被重置为limits.conf里的设定值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11425036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存