
獲取目錄下所有滿足條件的文件腳本
腳本內容如下:
#!/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}
