1、 统计当前文件夹下文件的个数
ls -l |grep "^-"|wc -l
2、 统计当前文件夹下目录的个数
ls -l |grep "^d"|wc -l
3、统计当前文件夹下文件的个数,包括子文件夹里的
ls -lR|grep "^-"|wc -l
4、统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep "^d"|wc -l
grep "^-"
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
例子如下:
以下为使用脚本代码实现以上部分操作(统计普通文件数和目录数):
#!/bin/bash
count1=0
count2=0
for files in *
do
if [ -d "$files" ]
then
count1='expr $count1 + 1'
elif [ -f "$files" ]
then
count2=`expr $count2 + 1`
fi
done
echo "There are $count1 directories in `pwd`"
echo "There are $count2 files in `pwd`".
(其中文件名用`` 目录用'')
count2=`expr $count2 + 1`
count1='expr $count1 + 1'
也可用表示为 count2=$(($count2 + 1))
count1=$(($count1 + 1))