有时候需要看文件夹下有多少文件,那么就需要用到以下指令

$ls -l | grep -c '^-'

linu下 统计 grep出来的数目_文件权限

个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'

linu下 统计 grep出来的数目_字符设备_02

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

linu下 统计 grep出来的数目_linu下 统计 grep出来的数目_03

find ./company -type f | wc -l

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

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

linu下 统计 grep出来的数目_字符设备_04

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

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

说明:

ls -l

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

grep "^-"

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

wc -l

统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于

一行信息对应一个文件,所以也就是文件的个数。

Linux查看文件夹大小

du -sh 查看当前文件夹大小

du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序

du -sk filename 查看指定文件大小

查看目录下有多少个文件及文件夹需

ls | wc -w

linu下 统计 grep出来的数目_linu下 统计 grep出来的数目_05

查看目录下有多少个文件需

ls | wc -c

linu下 统计 grep出来的数目_linu下 统计 grep出来的数目_06