压缩超过 7 天的目录

压缩超过 7 天的目录

我有这样的目录(有一些 .txt 文件)。我想将超过 7 天的目录(按更改日期)压缩到其相应的 YYYY_MM 目录

2019_08_05_132134_ABC

2019_08_02_084423_ABC

2019_07_30_024651_ABC

2019_07_27_084423_ABC

2019_07_24_084423_ABC

2019_06_15_024651_ABC

2019_06_08_084423_ABC

2019_05_13_084423_ABC

2019_05_07_084423_ABC

如果我今天运行该脚本,目录应该移动到 YYYY_MM.tar.gz 文件

2019_07_27_084423_ABC,2019_07_24_084423_ABC->2019_07.tar.gz

2019_06_15_024651_ABC,2019_06_08_084423_ABC->2019_06.tar.gz

2019_05_13_084423_ABC、2019_05_07_084423_ABC->2019_05.tar.gz

到目前为止,我有这个脚本。我循环遍历根目录,从文件夹名称中提取年份和月份,并在 TEMP_DIR 中创建 YYYY_MM 目录,然后将文件夹移动到 TEMP_DIR。接下来,循环遍历 TEMP_DIR,将每个 YYYY_MM 文件夹压缩为 .tar.gz,并从 TEMP_DIR 中删除文件夹 YYYY_MM

cd $ROOT_DIR
if find $ROOT_DIR -mindepth 1 | read; then
for f in *;do
  year=${f:0:4}
  month=${f:5:2}
 mkdir -p "$TEMP_DIR/${year}_${month}"
 mv -v "$f" "$TEMP_DIR/${year}_${month}/$f"
done

cd $TEMP_DIR
for i in *;do
 tar czf $ARCH_DIR/$i.tar.gz $i
 rm -r $TEMP_DIR/$i
done

但是它存档了所有目录,不确定如何限制只查看 7 天前的目录。我是 Linux 脚本的新手,一定有简单的方法可以做到这一点。希望有人能在这方面提供帮助。

相关内容