Linux 递归获取目录下所有满足条件的文件


 

获取目录下所有满足条件的文件脚本

 

脚本内容如下: 

#!/bin/bash

############################################################
# 用途:获取指定目录下满足条件的文件及其路径
# 作者:Dylan<1214966109@qq.com>
# 时间:Wed Aug 19 10:18:48 CST 2020
############################################################

############################################################
# 系统变量
############################################################
# 指定换行符,否则文件名中有空格时可能会出错
IFS=$'\n' 
# 获取昨天时间
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}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM