首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ls * CNC * $DCS_COMMSDIR/inreject -mQ显示所有文件在拒绝文件夹中-为什么不只是名称中的CNC文件?

ls * CNC * $DCS_COMMSDIR/inreject -mQ显示所有文件在拒绝文件夹中-为什么不只是名称中的CNC文件?
EN

Stack Overflow用户
提问于 2019-11-21 09:34:21
回答 1查看 28关注 0票数 0

ls *CNC* -mQ的工作原理是只显示带有CNC的文件,但是ls *CNC* $DCS_COMMSDIR/inreject -mQ会显示所有来自inreject文件夹的文件-为什么?

在我的脚本中(或者更确切地说,是我不久前离开的同事,我对它做了一点修改),我需要在电子邮件中列出所有将为特定部门/用户组删除的文件,但命令ls CNC $DCS_COMMSDIR/inreject -mQ显示所有文件(删除工作正常)。

命令find $DCS_COMMSDIR/inreject -type f -name "CNC*“运行良好,但显示文件路径,我不想将其发送给用户

脚本如下所示

代码语言:javascript
复制
#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" myemail@email.co.uk -- -f yoursupport@email.co.uk
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
EN

回答 1

Stack Overflow用户

发布于 2019-11-21 09:54:13

ls命令不像您想象的那样工作-它不接受要搜索前一个模式的目录名;而是由它自己处理每个参数。

若要从没有路径的inreject文件夹中列出所有具有CNC名称的文件,您可以这样做。

代码语言:javascript
复制
(cd $DCS_COMMSDIR/inreject; ls -mQ *CNC*)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58971553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档