转自: https://blog.youkuaiyun.com/u014540717/article/details/53319433
有时候需要看文件夹下有多少文件,那么就需要用到以下指令
ls -l | grep -c '^-'
这个grep是啥意思呢?我们man一下
man grep
会看到以下描述:
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
DESCRIPTION
grep searches the named input FILEs (or standard input if no files are
named, or if a single hyphen-minus (-) is given as file name) for lines
containing a match to the given PATTERN. By default, grep prints the matching lines.
是说白了就是打印出和在FILE中寻找和PATTERN一样的关键字,然后将这一行打印出来,其他的OPTIONS参数请自行用man命令查看,-c 就是不直接打印,而是统计行数,那么"^-" 这个是什么意思呢?
Linux常见的文件类型有:普通文件、目录文件、字符设备文件和块设备文件、符号链接文件等,其中:
1 普通文件的文件权限第一个字符为“-”
2 目录文件的文件权限第一个字符为“d”
3 字符设备文件的文件权限第一个字符为“c”;
4 块设备文件的文件权限第一个字符为“b”
5 符号链接文件的文件权限第一个字符为“s”
那我就明白了,其实就是统计普通文件的个数呗,同理可得~
# 统计目录的个数
ls -l | grep -c '^d'
我要想递归统计呢?那就把ls -l 换成ls -lR 就行了~~
(END)