shell脚本-切换工作目录至位置参数给出的目录实例
1、切换工作目录至位置参数给出的目录,依次向这些目录中的每个文件或子目录问好,统计这些目录下的各种文件及子目录个数,并显示。
01
#! /bin/sh
02
03
#切换工作目录至位置参数给出的目录
04
#依次向这些目录中的每个文件或子目录问好
05
#统计这些目录下的各种文件及子目录个数,并显示
06
07
if [ $# -lt 1 ]
08
then
09
echo "parameter's number error!";
10
exit 1;
11
fi;
12
13
while [ $# -gt 0 ]
14
do
15
if [ -f $1 ]
16
then
17
echo "$1 is not a dir!";
18
else
19
cd $1
20
21
bfiles=0; #块设备文件
22
cfiles=0; #字符设备文件
23
pfiles=0; #管道文件
24
lfiles=0; #链接文件/目录
25
sfiles=0; #sock文件
26
files=0; #普通文件
27
dirs=0; #目录文件
28
total=0; #总文件数
29
for var in `ls $1`
30
do
31
total=`expr $total + 1`;
32
echo "hello $var";
33
if [ -b $var ]
34
then
35
bfiles=`expr $bfiles + 1`;
36
elif [ -c $var ]
37
then
38
cfiles=`expr $cfiles + 1`;
39
elif [ -S $var ]
40
then
41
sfiles=`expr $sfiles + 1`;
42
elif [ -p $var ]
43
then
44
pfiles=`expr $pfiles + 1`;
45
elif [ -h $var ]
46
then
47
lfiles=`expr $lfiles + 1`;
48
elif [ -f $var ]
49
then
50
files=`expr $files + 1`;
51
elif [ -d $var ]
52
then
53
dirs=`expr $dirs + 1`;
54
fi;
55
done
56
57
echo "the number of bfiles is $bfiles";
58
echo "the number of cfiles is $cfiles";
59
echo "the number of lfiles is $lfiles";
60
echo "the number of sfiles is $sfiles";
61
echo "the number of pfiles is $pfiles";
62
echo "the number of files is $files";
63
echo "the number of dirs is $dirs";
64
echo "total file number is $total";
65
fi;
66
echo "************************************"
67
shift;
68
done