使用场景:
文件数量统计,在科研场景中,更多是用于检验、核对数据集的样本数量,防止数据遗漏等意外情况。
常用命令:
ls -l | grep "^-" | wc -l
作用:统计当前目录下,文件的个数(不包括目录/文件夹)ls -lR | grep "^-" | wc -l
作用:统计当前目录下,文件的个数(包括子目录中的文件)ls -lR | grep "^d" | wc -l
作用:统计当前目录下,文件夹(目录)的个数(包括子目录)
命令解析:
-
ls -l
长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录,
ls -lR
列出所有文件,包括子目录。 -
grep "^-"
过滤ls
的输出信息,只保留一般文件,只保留目录是grep "^d"
,
这里使用了正则表达式符号^
,表示以...开头,例如,"^d"
表示以d开头的行,
在linux文件系统中,d
表示目录,-
表示文件,如下图:
-
wc -l
统计输出信息的行数,一行信息对应一个结果,所以就是结果个数
示例:
现有Arsenal目录下的文件组织形式如下:
Arsenal
|- 1_1.txt
|- 1_2.txt
|- test1_1
|- 2_1.txt
|- test2_1
|- 3_1.txt
|- test2_2
|- 3_2.txt
|- test2_3
|- 3_3.txt
|- test1_2
|- 2_2.txt
|- 2_3.txt
|- test2_4
运行效果:
-
ls -l | grep "^-" | wc -l
输出结果为:2
统计当前目录下,文件的个数(不包括目录/文件夹),
即:1_1.txt
,1_2.txt
. -
ls -lR | grep "^-" | wc -l
输出结果为:8
统计当前目录下,文件的个数(包括子目录中的文件),
即:1_1.txt
,1_2.txt
,2_1.txt
,2_2.txt
,2_3.txt
,3_1.txt
,3_2.txt
,3_3.txt
. -
ls -lR | grep "^d" | wc -l
输出结果为:6
统计当前目录下,文件夹(目录)的个数(包括子目录),
即:test1_1
,test1_2
,test2_1
,test2_2
,test2_3
,test2_4
.