ls -l|grep ^-| wc -l在Linux中的作用是查看当前目录内的文件数量(不包含子目录中的文件),其中用管道|分为了三段,下面来解释下每一段的含义:
ls -l:列出当前目录下所有文件
grep ^-:grep用于筛选前面管道传来的信息,筛选标准是“行首后紧跟着一个-符号”(^代表行首,)
wc -l:统计文件的行数
例如,当前目录下有两个文件,分别叫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用于统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。