Linux统计当前文件夹下的文件数
统计文件个数,其实是用ls -l
命令竖向输出文件,这样每一行就是一个文件或目录,再用grep
命令筛选出需要的行,比如我只统计普通文件,那就grep "^-"
,意思是查找-
开头的文件,再使用wc -l
命令统计行数,达到“统计文件数”的目的,当然还会有其他的变化,比如子文件夹也统计。
统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR | grep "^-" | wc -l
ls
: list
-l
: long,以长列表的形式显示(一行一个文件,并显示文件的相关信息,如文件名,创建日期,文件权限等等)
-R
: Recursive,递归,意思是如果有目录,那么把目录中的文件也列出来,如果目录中还有目录,也会列出来,一直到最深层。必须说明的是还有个-r
选项,表示reverse
,这是相反的意思,就是一般是按时间倒序显示。
|
: 竖杠是“管道符”,意思是把上一个命令输出的结果通过管道传给下一个命令。
grep
: 字符查找工具,支持正则表达式。
wc
: Word Count的首字母,用-l
可以统计行数,因为这里的-l
是line
(行)的意思。
统计当前文件夹下文件的个数
ls -l | grep "^-" | wc -l
原理:ls -l
是把文件信息按行输出(每个文件一行),而grep "^-"
表示过滤出以-
开头的(我们知道,以-
开头的文件为普通文件),最后的wc -l
是统计行数(-l
表示line)。
统计当前文件夹下目录的个数
ls -l | grep "^d" | wc -l
原理:与前面不同的是,它是过滤出以d
开头的文件,我们知道,以d
开头的是目录,所以就变成了统计目录数。
统计文件夹下目录的个数,包括子文件夹里的
ls -lR | grep "^d" | wc -l
原理:与前面不同的是,它多了一个-R
,表示它是Recursive的首字母,表示递归显示列表。
觉得文章对你有用的话鼓励一下我吧