shell统计当前文件夹下的文件个数、目录个数
ls -l |grep "^-"|wc -l //统计当前文件夹下文件的个数
ls -l |grep "^d"|wc -l //统计当前文件夹下目录的个数
ls -lR|grep "^-"|wc -l //统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l //统计文件夹下目录的个数,包括子文件夹里的
命令拆解
grep "^-" //这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 `^d`
wc -l //统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数
扩展:shell脚本
//判断目录下文件数与指定文件数量是否相等的shell脚本(fileNum.sh)
#! /bin/sh
num=$1
DR=`ls`
for dir in $DR
do
if [ -d "$dir" ]; then
cd "$dir"
fileNum=`ls -l |grep "^-"|wc -l`
if [ "$num" -ne "$fileNum" ];then
echo `pwd` >> ../error.txt
fi
cd -
fi
done
执行脚本的命令
./fileNum.sh 5 //判断当前目录下的文件数量是否为5