一、命令解释

1.1 含义

        ls -l|grep ^-| wc -l在Linux中的作用是查看当前目录内的文件数量(不包含子目录中的文件),其中用管道|分为了三段,下面来解释下每一段的含义:

        ls -l:列出当前目录下所有文件

        grep ^-:grep用于筛选前面管道传来的信息,筛选标准是“行首后紧跟着一个-符号”(^代表行首,)

        wc -l:统计文件的行数

1.2 实例

        例如,当前目录下有两个文件,分别叫a和b:

$ ls -l
总用量 0
-rw-rw-r-- 1 honeyding honeyding 0 3月   6 17:22 a
-rw-rw-r-- 1 honeyding honeyding 0 3月   6 17:22 b

$ ls -l|grep ^-
-rw-rw-r-- 1 honeyding honeyding 0 3月   6 17:22 a
-rw-rw-r-- 1 honeyding honeyding 0 3月   6 17:22 b

$ ls -l|grep ^-| wc -l
2

$ ls -l| wc -l
3

        ls -l| wc -l会输出3是因为还统计了“总用量 0”这一行 

二、其他相关命令

1. 查看某文件夹下文件的个数

        ls -l |grep "^-"|wc -l

        或

        find ./company -type f | wc -l

2. 查看某文件夹下文件的个数,包括子文件夹里的。

        ls -lR|grep "^-"|wc -l

3. 查看某文件夹下文件夹的个数,包括子文件夹里的。

        ls -lR|grep "^d"|wc -l

        说明:ls -l表示长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)

        grep "^-"表示将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

        wc -l用于统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐