ls CNC -mQ通过仅显示带有CNC的文件而工作正常,但是ls CNC $ DCS_COMMSDIR / inreject -mQ显示inreject文件夹中的所有文件-为什么?
[在我的脚本(或更确切地说是我刚刚离开的同事那里,我已经对其稍作修改了)中,我需要在电子邮件中列出将为特定部门/用户组删除的所有文件,但是命令ls CNC $ DCS_COMMSDIR / inreject -mQ显示所有文件(删除工作正常)
命令查找$ DCS_COMMSDIR / inreject -type f -name“ CNC *”正常,但显示文件的路径,我不想将其发送给用户
脚本如下所示
#starting script
echo "Start..."
rval=0
inValueST=`find $DCS_COMMSDIR/inreject -type f -name "*CNC*" | wc -l`
totValue=$(($inValueST))
#inValueTEST=`ls *CNC* $DCS_COMMSDIR/inreject -mQ`
#inValueTEST=`ls $DCS_COMMSDIR/inreject -mQ`
#inValueTEST=`find $DCS_COMMSDIR/inreject -type f -name "*CNC*"`
if [ $totValue -gt 0 ]; then
foo=" RedPrairie 2010 TEST Reject alert"
foo="$foo \n"
foo="$foo \n"
# check how many *CNC* files
if [ $inValueST -gt 0 ]; then
foo="$foo Rejected : $inValueST file(s) \n \n $inValueTEST \n \n Files *CNC* are deleted now from Reject folder"
else
foo="$foo inreject : $inValueST file(s) \n"
fi
foo="$foo \n"
echo -e $foo | mail -s "RedPrairie 2010 TEST Reject alert - *CNC* file(s) in Reject folder" [email protected] -- -f [email protected]
fi
# remove old files from outtray
#echo "Removing old log files..."
find /redprairie/comms/test/comms/inreject -type f -name "*CNC*" -mmin +4 -exec rm {} \;
# end script
echo "$inValueTEST"
echo "End..."
exit $rval
ls
命令无法按照您认为的方式工作-它不接受要搜索先前模式的目录名;它宁愿自己处理每个参数。
要列出所有具有CNC名称的文件 从不合格文件夹中的文件不带路径,可以执行
(cd $DCS_COMMSDIR/inreject; ls -mQ *CNC*)