(编辑:jimmy 日期: 2024/12/25 浏览:2)
需求:删除文件,目录结构为:ip/年份/月份,每个人都有一份这样的目录现需要删除2012年以前的所有文件,2012年以后的删除特定月份。
本来想用find,结果发现这些文件time(a,m,c)记录已经不是当初生成的。
没办法只好想了个土办法去遍历,哪位有好的方法,欢迎告知。
复制代码 代码如下:
#!/bin/bash
cd /home/wanggy/rmfile/
ls -l | grep ^d | awk '{print $NF}' >/home/wanggy/tmp
cat /home/wanggy/tmp |while read dir1
do
cd $dir1
echo "第一级目录 $dir1"
ls -l | grep ^d | awk '{print $NF}' >/home/wanggy/tmp1
cat /home/wanggy/tmp1 |while read dir2
do
echo "二级目录 $dir2"
cd $dir2
#对大于2012年的目录再判断,小于则直接删除。
if [ $dir2 -gt 2011 ];then
ls -l | grep ^d | awk '{print $NF}' >/home/wanggy/tmp2
cat /home/wanggy/tmp2 |while read dir3
do
#9月份之前的删除"
if [ $dir3 -lt 09 ];then
rm -rf $dir3
fi
done
else
echo "删除2012前的目录:$dir2"
rm -rf $dir2
fi
#返回上一级
cd ..
done
#返回上一级
cd ..
done