场景
JKs部署代码的时候,删除一周前的文件
文件目录的格式是20190101
脚本
#!/bin/bash
dirs=$(ls -l | grep "20[0-2][0-9][0-9][0-9][0-9][0-9]" | awk -F " " '{print $9}')
today=$(date +20%y%m%d)
for i in $dirs
do
if [ $i -le $today ];then
#find ./ -mtime +7 -name $i -exec rm -rf {} \;
find ./ -mtime +7 -name $i | xargs rm -rf
fi
done
-mtime n 按照文件的更改时间来找文件,n为整数
- n 表示文件更改时间距离为n天
- -n 表示文件更改时间距离在n天以内
- +n 表示文件更改时间距离在n天以前
补充
在把脚本部署到JKs上发现执行的时候dirs为空。最后暴力解决(手动滑稽 - -!)在原有的脚本上加了下面一条语句。
find ./ -mindepth 1 -type d -mtime +7 -name '20*'| xargs rm -rf