find命令統計目錄下的普通檔案如何使用shell指令碼來實現呢?
阿新 • • 發佈:2020-08-19
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
看的出來達到了同樣的目的。