[問題] file counts 計算 請教

作者: zchien (小建)   2018-04-18 00:29:41
請教一個迴圈問題
我要寫一個迴圈去比對 /usr/data 資料夾內
第一層目錄底下,任何一個資料夾, 內的檔案數量, 達於36500筆,
必須要記錄 log 並且mail通知
我寫了下面寫法,但是不work
#! /bin/sh
file=`ls -ald /usr/data/*|awk '{print $9}'`
for i in $file
do
file_count=`ls $i|wc -l|sed 's/ //g'` #計算每個資料夾檔案數
if [ $file_count -gt 36500 ];then
echo "$i is $file_count " > /tmp/log.txt #匯出某一個資料夾檔案數量到log
#希望顯示某個資料夾,count數是多少
echo "$i is $file_count" | mailx -s "file too big" [email protected]
fi
done
我覺得上面寫法在讀取每個資料夾 分別計算count 數寫錯
請問這應該要如何修改
作者: ckc1ark (偽物)   2018-04-18 00:33:00
應該是file_count=`ls $i|wc....` ?
作者: ddtsatan   2018-04-18 01:42:00
if[空格判斷式空格]
作者: zchien (小建)   2018-04-18 02:11:00
樓上網友的意思是 要怎麼修改呢??我懂意思了,原來我前後少了 空格, 謝謝
作者: Bencrie   2018-04-18 02:17:00
是說怎麼不用 find -maxdepth 2 -type f ?
作者: dou0228 (7777)   2018-04-18 08:40:00
匯出 log 要用 >>不然永遠只有最後一次的資料
作者: soem (流水)   2018-04-18 22:09:00
你檔案這麼多,ls加上'-U' (do not sort)效能會好一些

Links booklink

Contact Us: admin [ a t ] ucptt.com