#/bin/bash
FILE_DIR=$1
MATCH_NAME=$2
ls -lthr $1| grep -E '${MATCH_NAME}_{0-9_}*$'| head -1 | awk '{print $9}' | xargs -I {} rm -rf ${FILE_DIR}/{}
举个例子:
在/home目录下有map、map_20210908_135801、map_20210807_142301这三个文件或目录,
我们要删除满足文件名是map_yyyyMMDD_hhmmss其中最老的一个,则shell语句该这么写
#/bin/bash
ls -lthr /home | grep -E 'map_{0-9_}*$'| head -1 | awk '{print $9}' | xargs -I {} rm -rf /home/{}