1. 程式人生 > 實用技巧 >find命令統計目錄下的普通檔案如何使用shell指令碼來實現呢?

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

看的出來達到了同樣的目的。