在linux上使用shell .sh脚本删除指定目录中指定某一时间段之前创建的文件及文件夹的脚本
程序员文章站
2024-02-24 10:37:22
...
标题有些绕口,但脚本很是丝滑:
#目标目录(配置好加入array数组)这里可以加入多个路径
dir1=/usr/local/backup/
array=($dir1)
#删除最小粒度控制(据当前时间节点多久之前的时间,单位秒)
minTime=604800
#echo $minTime
currentTime=$(date +%s)
#echo "当前时间:"$currentTime
for(( i=0;i<${#array[@]};i++))
do
fileArr=`ls -l ${array[i]} | awk -F " " '{print $9}'`
for j in $fileArr
do
createTime=`stat -c %Y "${array[i]}$j"`
# echo ${array[i]}$j"文件上次修改时间:"$createTime
mTime=`expr $currentTime - $createTime `
# echo "时间差:"$mTime
if [[ $mTime -gt $minTime ]];then
echo "删除文件:"${array[i]}$j
rm -rf ${array[i]}$j
fi
done
done
这个也是我看的别人的博客内容写的,不过里面有很多坑我踩了一遍,做了多处调整,现在基本上没有任务问题,非常通用的。