file counts 計算 請教 - Linux

Table of Contents


請教一個迴圈問題

我要寫一個迴圈去比對 /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 數寫錯
請問這應該要如何修改


--

All Comments

Brianna avatarBrianna2018-04-19
應該是file_count=`ls $i|wc....` ?
Tracy avatarTracy2018-04-24
if[空格判斷式空格]
Frederica avatarFrederica2018-04-26
樓上網友的意思是 要怎麼修改呢??
Emma avatarEmma2018-04-29
我懂意思了,原來我前後少了 空格, 謝謝
Catherine avatarCatherine2018-04-30
是說怎麼不用 find -maxdepth 2 -type f ?
Lucy avatarLucy2018-05-04
匯出 log 要用 >>
不然永遠只有最後一次的資料
Mary avatarMary2018-05-06
你檔案這麼多,ls加上'-U' (do not sort)效能會好一些