问题场景
- 对某个文件夹的文件个数进行统计,文件夹内包含大量的子文件夹和各种格式的文件
基本方法
- 在目标文件夹上右键,选择
属性
选项,即可了解其基本信息,其中包含文件数量和文件夹数量- PS:此处的文件数量把隐藏文件也统计了
复杂需求
有的时候统计目标需要符合一定特征(如后缀名、命名规律),此时基本方法不便于操作,可以考虑使用命令行来实现。
Windows
- 统计当前目录(不包含子文件夹)下文件数量:
dir /b /a-d | find /v /c ""
- 统计当前目录(包含子文件夹)下文件数量:
dir /b /s /a-d | find /v /c ""
- 统计当前目录下非隐藏文件数量:
dir /b /s /a-d-h | find /v /c ""
- 统计当前目录下后缀为
pdf
的文件数量:dir /b /s /a-d | find /i /c ".pdf"
- 统计当前目录(包含子文件夹)下文件夹数量:
dir /b /s /ad | find /v /c ""
PS:通过 dir /?
可以获取与 dir
的使用说明,通过find /?
可以获取与 find
的使用说明。
dir
/A 显示具有指定属性的文件。
属性 D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 I 无内容索引文件
L 重新分析点 O 脱机文件
- 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/Q 显示文件所有者。
/S 显示指定目录和所有子目录中的文件。
/T 控制显示或用来分类的时间字符域
find
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串的行数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
"string" 指定要搜索的文本字符串。
Linux
- 统计当前目录(不包含子文件夹)下文件数量:
ls -l|grep "^-"| wc -l
- 统计当前目录(包含子文件夹)下文件数量:
ls -lR|grep "^-"| wc -l
- 统计当前目录(包含子文件夹)下文件夹数量:
ls -lR|grep "^d"|wc -l
- 统计当前目录(包含子文件夹)下后缀为
pdf
的文件数量:ls -lhR | grep '.pdf' |wc -l
- 发现当前目录下所有后缀为
pdf
的文件:find ./ -name *.pdf
PS:通过 man ls
等方法可以获取与 ls
的使用说明,其他命令类似。
ls
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出,部分系统可以直接使用 `ll` 来表示,用-lh组合选项,以易读方式来显示文件大小。
-R 递归列出全部的目录内容,即输出子目录中的目录、链接、设备文件等
-a 列出所有的文件(包括以 . 开头的隐藏文件)其他状态一般不统计隐藏文件
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
grep
"^-" 表示文件
"^d"表示目录