本文共 919 字,大约阅读时间需要 3 分钟。
Linux系统中,有三个核心命令ls
、grep
和wc
,通过这些命令的组合,可以轻松统计目录下的文件及文件夹数量。以下是几个常用的统计方式。
ls -l
命令会以长列表的形式输出当前目录下的文件信息,每个文件对应一行,默认包括文件和目录。不过,ls -l
的输出中会包含文件和目录,为了只统计文件,可以使用grep "^-"
来筛选。例如:
$ ls -l | grep "^-" | wc -l
运行这个命令会输出统计结果,数值即为当前目录下的普通文件数量。
如果需要统计当前目录下的文件数量,包括子目录中的文件,可以使用ls -lR
命令。-R
选项表示递归,该命令会列出当前目录及其子目录下的所有文件。同样,使用grep "^-"
过滤文件,最后使用wc -l
统计数量。例如:
$ ls -lR | grep "^-" | wc -l
运行该命令后,输出的数字即为当前目录下的所有文件数量。
要统计某个目录下的文件夹(包括子目录),可以使用类似的方式。ls -lR
递归列出所有文件和目录,使用grep "^d"
来筛选目录名-starting-with-d的目录。例如:
$ ls -lR | grep "^d" | wc -l
这样运行后,输出的数字即为所在目录下的目录数量。
ls -l
: 列出长列表格式的目录内容,包含文件和目录的详细信息。ls -lR
: 类似ls -l
,但包括子目录的内容。grep "^-"
: 过滤文件名以“-”开头的文件,仅保留普通文件。grep "^d"
: 过滤文件名以“d”开头的目录,仅保留目录。wc -l
: 统计输入的行数,逐行数统计的结果即为文件或目录的数量。对于更具体的统计需求,可以简单地在命令末尾添加一个额外的grep
来筛选特定类型的文件。例如,若想统计某个目录下的.o
文件数,可以这样做:
$ ls -l | grep "^-" | grep "\.o" | wc -l
这样就统计了当前目录下的.c.o文件的数量。
转载地址:http://wcuzk.baihongyu.com/