任务场景 文件夹下持续进入文件,每隔10分钟进行文件清理操作,压缩转移至备份服务器。 实现代码 [plain] view plain copy #!/bin/bash targetDIR=/aaa backDIR=/bbb cd $ targetDIR for name in * do nowTime=`date "+Y%m%d_%H%M%S"` cd $name if ls *.txt > /dev/null 2>&1 ; then mv *.txt $backDIR/$name/ tar -zcvf $nowTime"_"$name.tar.gz *.txt rm *.txt cd $targetDIR done exit 0 代码解析 循环遍历文件夹进行文件获取,尤其需要注意该部分: [plain] view plain copy if ls *.txt > /dev/null 2>&1 ; then ls所有以.txt为后缀的文件,如果不存在,将标准错误重定向到标准输出,这里2>&1 的意思就是将标准错误也输出到标准输出当中。重定向中 0-标准输出,1-标准输出,2-标准错误,而No such file or directory是一个标准错误。如果未添加该部分,如果未查到文件,则会导致后续命令无法顺序执行。