find命令统计目录下的普通文件如何使用shell脚本来实现呢?

find命令本身实现查找普通文件是很方便的,比如:

[root@node2 nginx-1.16.1]# find auto -type f | xargs ls -l
-rw-r--r-- 1 1001 1001   201 Aug 13  2019 auto/cc/acc
-rw-r--r-- 1 1001 1001  1275 Aug 13  2019 auto/cc/bcc
-rw-r--r-- 1 1001 1001  1324 Aug 13  2019 auto/cc/ccc
-rw-r--r-- 1 1001 1001  1881 Aug 13  2019 auto/cc/clang

当然,这一操作我们也可以使用shell脚本来实现

#! /bin/bash
function read_dir(){
for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
do
	if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
 	then
 		read_dir $1"/"$file
 	else
 		ls -l $1"/"$file #在此处处理文件即可
 	fi
done
} 

[ -z $1 ] && exit 1
#读取第一个参数
read_dir $1

我们执行一下这个脚本

[root@node2 nginx-1.16.1]# bash ss.sh auto
-rw-r--r-- 1 1001 1001 201 Aug 13  2019 auto/cc/acc
-rw-r--r-- 1 1001 1001 1275 Aug 13  2019 auto/cc/bcc
-rw-r--r-- 1 1001 1001 1324 Aug 13  2019 auto/cc/ccc
-rw-r--r-- 1 1001 1001 1881 Aug 13  2019 auto/cc/clang
-rw-r--r-- 1 1001 1001 5269 Aug 13  2019 auto/cc/conf

看的出来达到了同样的目的。

posted @ 2020-08-19 10:46  峰哥ge  阅读(251)  评论(0编辑  收藏  举报