学习笔记,转自:https://blog.csdn.net/yipiankongbai/article/details/36862835
要点:
1、目录下创建文件数量没限制
2、ext3、ext4 文件系统单个目录下的最大文件数没什么特别限制,主要受限于所在文件系统的inode数限制,可以用df -i查看
学习笔记,转自:https://blog.csdn.net/yipiankongbai/article/details/36862835
要点:
1、目录下创建文件数量没限制
2、ext3、ext4 文件系统单个目录下的最大文件数没什么特别限制,主要受限于所在文件系统的inode数限制,可以用df -i查看
Linux目录数和文件数限制(目录下最大文件数)
Linux目录数和文件数限制(目录下最大文件数)
一、目录数限制:
在同一个路径下,一级子目录的个数限制为 31998 。如果你的应用生成的目录可能会超过这个数,那要注意进行目录分级。例如,如果目录名为数字的话,可以将数字除以10000后的整数值做为父目录名(/data/1/13892);如果是目录名为字幕的,可以用前几个字符来做为父一级目录(/data/com/idcfree)等等
解决方法:
得到一个目录下一级子目录的总数
ls -F | grep / |wc
二、 文件数目限制:
每个文件对应一个inodes ,如果iodes没有了,那就算有空间也不能再写文件了。
查看当前分区的iodes信息:
tune2fs -l /dev/hda2
Free inodes: 374919
解决办法:
1. 重新mkfs,mkfs时将inode数调的多一些(根据你fs中文件的总数而定),块尺寸调得小一些(根据每个文件的平均大小而定)
2. 使用loopback文件系统临时解决
在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统性能会有点损失。
在做视觉项目的时候,经常会存储IPC图像,然后统计下图像文件的数量。
在Linux服务器中想要快速查看目录下的文件个数时,可以使用linux组合命令即可实现。
需要ls 、grep 、wc 三个命令组合起来使用。
关于ls 、grep 、wc命令请自行查询,或者继续关注后续的博客。
查看当前目录下的文件个数使用命令:
ls -l | grep "^-"| wc -l
使用示例:
[root@localhost 2022-01-10]# pwd
/home/AI_project/jn_20211125/.Image/2022-01-10
[root@localhost 2022-01-10]# ls -l |grep "^-"|wc -l
2033
[root@localhost 2022-01-10]#
即/home/AI_project/jn_20211125/.Image/2022-01-10目录下有2033个文件(这里是IPC图片);
查看指定目录下的文件个数使用命令:
ls -l specified_dir | grep "^-"| wc -l
其中 specified_dir是待指定的目录,如果省略则默认为当前目录。
使用示例:
[root@localhost ~]# pwd
/root
[root@localhost ~]# ls -l /home/AI_project/jn_20211125/.Image/2022-01-09 | grep "^-"| wc -l
2469
[root@localhost ~]#
相比1.1,所谓递归,即如果当前目录有文件夹,则会层层搜索所有文件夹中的所有文件。
命令如下:
ls -lR | grep "^-"| wc -l
使用示例:
[root@localhost test]# pwd
/home/test
[root@localhost test]# ls -lR | grep "^-"| wc -l
2
[root@localhost test]#
相比1.2,所谓递归,即如果指定目录有文件夹,则会层层搜索所有文件夹中的所有文件。
命令如下:
ls -lR specified_dir | grep "^-"| wc -l
其中 specified_dir是待指定的目录,如果省略则默认为当前目录。
使用示例:
[root@localhost home]# pwd
/home
[root@localhost home]# ls -lR /home/test | grep "^-"| wc -l
2
[root@localhost home]#
一、查看当前目录下文件个数
在linux下查看目录下有多少文件可以用:ls -l 命令查看,ls -lR 递归查看所有目录,
如果文件很多,则用wc命令 和 grep 命令进行过滤。
如下:
1、ls -l获取当前目录下信息
2、ls -l | wc -l 列出有多少个文件
3、ls -lR | wc -l 递归获取当前目录有多少文件
4、ls -lR | grep “^d” | wc -l 递归获取当期目录有多少目录文件,其中“^d”表示仅列出目录文件
二、查看当前目录文件大小
1、ls -lht 查看当前目录下文件的大小
2、ls -lhtR 递归查看当前目录下所有文件的大小
3、du -sh 查看当前文件夹的大小