Linux下有三个命令:ls、grep、wc。通过这三个命令的组合可以统计目录下文件及文件夹的个数
统计当前目录下文件的个数(不包括目录)
$ ls -l | grep "^-" | wc -l
统计当前目录下文件的个数(包括子目录)
$ ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数(包括子目录)
$ ls -lR | grep "^d" | wc -l
ls -l
: 长列表输出该目录下文件信息(注意这里的文件是指目录、链接、设备文件等),每一行对应一个文件或目录,ls -lR
是列出所有文件,包括子目录。
grep "^-"
: 过滤ls
的输出信息,只保留一般文件,只保留目录是grep "^d"
。
wc -l
: 统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。
可能有同学想问 ^d
和 ^-
到底是什么意思呢?
其实^
表示以什么开头,而我们观察一下目录和文件的输出:
ls -l
输出:
-rw------- 1 vien staff 2323151481 Aug 19 22:02 java_error_in_pycharm.hprof
drwxr-xr-x 5 vien staff 160 Mar 23 2018 moma
可以看到文件的话开头是-
,而目录的话是d
开头,如此就很明了了