[問題] file counts 計算 請教

看板Linux作者 (小建)時間7年前 (2018/04/18 00:29), 7年前編輯推噓4(404)
留言8則, 6人參與, 7年前最新討論串1/1
請教一個迴圈問題 我要寫一個迴圈去比對 /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" aaaaa@yahoo.com fi done 我覺得上面寫法在讀取每個資料夾 分別計算count 數寫錯 請問這應該要如何修改 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.105.175.49 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1523982583.A.969.html

04/18 00:33, 7年前 , 1F
應該是file_count=`ls $i|wc....` ?
04/18 00:33, 1F
============ 依照網友說明,我修改完畢了, 我使用sh -vx file.sh 去驗證我寫的每一行字 現在是遇到在計算 $file_count 可以正確計算出來 例如: $file_count 算出來是40000, 但是下一行顯示+[40000 -gt 36500] 下下一行顯示/file_count: [40000 not found 為什麼會卡在這裡呢?? ※ 編輯: zchien (106.105.175.49), 04/18/2018 01:18:11

04/18 01:42, 7年前 , 2F
if[空格判斷式空格]
04/18 01:42, 2F

04/18 02:11, 7年前 , 3F
樓上網友的意思是 要怎麼修改呢??
04/18 02:11, 3F

04/18 02:16, 7年前 , 4F
我懂意思了,原來我前後少了 空格, 謝謝
04/18 02:16, 4F

04/18 02:17, 7年前 , 5F
是說怎麼不用 find -maxdepth 2 -type f ?
04/18 02:17, 5F
上文修正完畢,謝謝大家 ※ 編輯: zchien (106.105.175.49), 04/18/2018 02:23:15

04/18 08:40, 7年前 , 6F
匯出 log 要用 >>
04/18 08:40, 6F

04/18 08:40, 7年前 , 7F
不然永遠只有最後一次的資料
04/18 08:40, 7F

04/18 22:09, 7年前 , 8F
你檔案這麼多,ls加上'-U' (do not sort)效能會好一些
04/18 22:09, 8F
文章代碼(AID): #1QrY3tbf (Linux)
文章代碼(AID): #1QrY3tbf (Linux)