[问题] 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