当前位置:  开发笔记 > 编程语言 > 正文

Bash脚本,匹配日期如何?

如何解决《Bash脚本,匹配日期如何?》经验,为你挑选了1个好方法。

我正在编写一个脚本来删除超过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

VonC.. 7

你的意思是,有些东西:

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



1> VonC..:

你的意思是,有些东西:

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

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有