我使用的是12 + 31备份系统 - 也就是说,我保留了过去一年每个月的一个文件,以及当月每天的一个文件。我很难搞清楚如何构建一个将执行以下清理的bash脚本:
例如,如果它现在是11月,则此脚本将:
这将在共享托管服务器(Dreamhost)上运行,因此我无法安装任何自定义CLI工具。
我的所有备份文件都包含文件名中的日期,但如果可能的话,我更愿意检查文件创建日期。
我在删除早于[x]的文件时看到了很多东西,但我一点也不清楚如何跳过本月第一天的文件。
答案 0 :(得分:2)
这是我现在能想到的最好的:
find . -type f \ # files only
-mtime +31 \ # exclude files less than 31 days old
-printf '%Td %p\n' | # prepend filename with day of the month of last modification
grep -v '^01' |
sed 's/^[0-9][0-9] //'
一些警告: