删除一年前的文件夹

删除一年前的文件夹

我有这些文件夹,它们按日期 YYYY-MM 排序

2020-01
2020-02
2020-03
...
2022-07
2022-08
2022-09

我想删除所有超过一年的文件夹。

这是我的代码:

#!/bin/bash

LOG_FILES=(
   "/tmp/test/*"
)

NOW=$( date +%s )
LAST_YEAR=$(date +“%Y-%m” -d "365 days ago")


for folder in ${LOG_FILES[@]}; do
   if [ -d "$folder" ]; then
      if [ $folder -gt $LAST_YEAR ]; then
          echo $( date ) $folder - DELETED
      else
         echo $( date ) $folder - SAVED
      fi
   fi
done

代码出错了

This line here: 
    if [ $folder -gt $LAST_YEAR ]; then
Error Message:
   integer expression expected

有人知道如何删除超过一年的文件夹吗?谢谢

答案1

由于您的文件夹包含减号字符,请勿使用算术运算符 (-gt、-lt...) 进行比较。请使用字符串运算符 (>、<...)。

如果您确实想使用算术测试,并且日期格式为 YMD,而不是 DMY,则必须在比较期间删除减号字符。替换$folder${folder//-/}并用作%Y%m您的上一个日期格式。

相关内容