获取目录下所有满足条件的文件脚本
脚本内容如下:
#!/bin/bash ############################################################ # 用途:获取指定目录下满足条件的文件及其路径 # 作者:Dylan<1214966109@qq.com> # 时间:Wed Aug 19 10:18:48 CST 2020 ############################################################ ############################################################ # 系统变量 ############################################################ # 指定换行符,否则文件名中有空格时可能会出错 IFS=$' ' # 获取昨天时间 DateYesterday=$(date -d 'yesterday' +%F) ############################################################ # 用户自定义变量 ############################################################ # 定义文件名后缀 FileType='.gz' # 需要查询的目录 InitPath='.' # 需要写入的文件 ResultFile="/tmp/file.txt" ############################################################ # 函数:递归获取指定目录下满足条件的文件及其路径 # 参数:$1,需要查询的目录 ############################################################ function GET_FILE_FULL_PATH(){ for each in $(ls $1);do FilePath=${1}/${each} if [ -d ${FilePath} ];then # 如果文件是目录,则继续往里面查找 GET_FILE_FULL_PATH ${FilePath} else # 判断文件名称是否满足条件 if [[ $(echo ${FilePath} | grep ${DateYesterday} | grep -E "${FileType}$") != "" ]];then echo ${FilePath} >> ${ResultFile} fi fi done } ############################################################ # 入口 ############################################################ # 清空记录文件 echo > ${ResultFile} # 执行函数 GET_FILE_FULL_PATH ${InitPath}