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
看的出来达到了同样的目的。