目录文件计数

目录文件计数

Content #

shell脚本,它可以对PATH环境变量中各个目录所包含的文件数量进行统计。为此,需要将PATH环境变量解析成单独的目录名。 $ echo $PATH usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr games:/usr/ local/games $ 根据Linux系统中应用程序所处的位置,PATH环境变量也会有所不同。关键是要认识到,PATH中的各个路径由冒号分隔。要获取可在脚本中使用的目录列表,必须用空格替换冒号。现在你会发现,sed用一个简单的表达式就能完成替换工作: $ echo $PATH | sed ’s/:/ g' /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games $ 分离出目录之后,可以使用标准for语句来遍历每个目录: mypath=`echo $PATH | sed ’s:/ /g’` for directory in $mypath do … done 对于单个目录,可以用ls命令列出其中的文件,再用另一个for语句来遍历每个文件,对文件计数器增值。这个脚本的最终版本如下:

$ cat countfiles
#!/bin/bash
# count number of files in your PATH
mypath=$(echo $PATH | sed 's/:/ /g')
count=0
for directory in $mypath
do
   check=$(ls $directory)
   for item in $check
   do
         count=$[ $count + 1 ]
   done
   echo "$directory - $count"
   count=0
done
$ ./countfiles /usr/local/sbin - 0
/usr/local/bin - 2
/usr/sbin - 213
/usr/bin - 1427
/sbin - 186
/bin - 152
/usr/games - 5
/usr/local/games - 0
$

From #

Linux命令行与shell脚本编程大全