一、需求说明
需要统计某目录下的文件数量,事实上统计目录下文件数量只需要一条命令即可完成,写成shell脚本只是方便使用和展示。另外我们以后还可以在此脚本上进行扩展,统计指定类型的文件数量,指定文件前缀的文件数量等等。
二、脚本内容
#!/bin/bash
#script name:
#author: 524627027@qq.com
#version: v1
#decription: 此脚本用于统计指定目录下文件及其子目录数量
#参数定义
workdir=$(cd $(dirname $0); pwd)
inputdir=""
filesum=0
dirsum=0
#输入目录参数
read -p "请输入需要统计文件和子目录数量的目录(绝对路径):" inputdir
#判断输入的目录
if [ ! -n "$inputdir" ] ;then
#输入为空时检查统计当前目录下文件数量
echo "未输入目录,统计当前目录下的文件数量"
filesum=`ls -lR $workdir | grep "^-"| wc -l`
dirsum=`ls -lR $workdir | grep "^d"| wc -l`
#输出展示结果
echo -e "当前目录下文件数量为:\e[1;32m $filesum \e[0m ,子目录数量为:\e[1;32m $dirsum \e[0m "
else
if [ -d "$inputdir" ]; then
filesum=`ls -lR $inputdir | grep "^-"| wc -l`
dirsum=`ls -lR $inputdir | grep "^d"| wc -l`
#输出展示结果
echo -e "$inputdir 此目录下文件数量为:\e[1;32m $filesum \e[0m ,子目录数量为:\e[1;32m $dirsum \e[0m "
else
echo -e "\e[1;31m 输入的目录不存在,请输入已存在的正确目录! \e[0m"
fi
fi