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