bash 中包含日期格式和 .zip 扩展名的备份文件的正则表达式

Regex for backup files that contains date format and .zip extension in bash

我是 bash 的新手,需要帮助 select 处理具有特定日期格式和 .zip 扩展名的文件。我想使用正则表达式 select 正确的文件。以下是我希望 select

的文件格式
2017-Apr-13--2315.zip

所以基本上是年份、月份(3 个字母)、日期和备份发生的时间,即 .zip 扩展名之前的 4 位数字。 我正在努力在 Regex101

上做对

最后,我想 select 正确的文件并删除所有备份,但保留最新的 6 个备份。我使用的命令在

下面
find . -maxdepth 1 -type f | tac | tail -n +7 | xargs rm -rf

但是目录中还有其他文件不是备份文件。所以我需要 select 正确的文件,其正则表达式与我上面提供的文件格式匹配。

以下 regex 可能与 find 一起工作:

find . -regextype egrep -iregex '.*/[0-9]{4}-[a-z]{3}-[0-9]{2}--[0-9]{4}\.zip$'

要删除匹配的文件,您可以使用:

find . -regextype egrep -iregex '.*/[0-9]{4}-[a-z]{3}-[0-9]{2}--[0-9]{4}\.zip$' -delete