有时候需要看文件夹下有多少文件,那么就需要用到以下指令
$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)