gpt4 book ai didi

Bash 脚本,匹配日期?

转载 作者:行者123 更新时间:2023-11-29 09:36:00 24 4
gpt4 key购买 nike

我正在编写一个脚本来删除一些超过 1 周的构建工件。

文件的名称格式为 artifact-1.1-200810391018.exe

如何只删除超过 1 周的文件,不包括日期时间戳末尾的小时和分钟时间?

当前它正在删除目录中的所有文件。

#!/bin/sh

NIGHTLY_LOCATIONS=( "/foo" "/bar" )

ARTIFACT_PREFIX="artifact-*-"

NUM_TO_KEEP=7

for home in $(seq 0 $((${#NIGHTLY_LOCATIONS[@]} - 1))); do
echo "Removing artifacts for" ${NIGHTLY_LOCATIONS[$location]}

for file in `find ${NIGHTLY_LOCATIONS[$location]} -name "$ARTIFACT_PREFIX*"`; do

keep=true

for day in $(seq 0 $((${NUM_TO_KEEP} - 1))); do
date=`date --date="$day days ago" +%Y%m%d`

echo $(basename $file ".exe") " = " $ARTIFACT_PREFIX$date

if [ "$(basename $file ".exe")" != "$ARTIFACT_PREFIX$date" ]; then
keep=false
fi
done

if [ !$keep ]; then
echo "Removing file"
rm -f $file
fi
done done

最佳答案

你的意思是,类似于:

find /path/to/files -name "artifact*" -type f -mtime +7 -exec rm {} \;

?

关于Bash 脚本,匹配日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/248470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com