我有很多文件和文件夹。他们有这样的语法路径
/opt/logs/qnap/[hosta,hostb]/2012/03/12
Qnap 数据存储上的所有日志文件,并且位于另一个位置。因此,当我想删除超过 180 天的文件和文件夹时,我无法使用 find 命令导致运行缓慢。所以我写了一个这样的脚本。
SixMonthAgo=$(date --date='190 day ago' "+%Y/%m/%d/%H") = 2011/06/12/12
Hosts="hosta hostb"
maxDay=181
qnapFolder="/opt/logs/qnap"
for host in $(echo "${Hosts}"); do
maxDayAgo=$(date --date="${maxDay} day ago" "+%Y/%m/%d")
countCharacters=$(echo ${maxDayAgo} | wc -c)
if [ ${countCharacters} -ge 10 ]; then
rm -rf ${qnapFolder}/${host}/${maxDayAgo} #output of this just like 2012/03/12
fi
done
但有时我得到一个错误。这个解决方案不能正常工作,我想要的。我想在 180 天之前删除所有文件和文件夹。我怎样才能做到这一点 ?例如,必须在 2012/03/23 之前删除所有文件和目录。
提前致谢