本节内容:
一例遍历目录的shell/ target=_blank class=infotextkey>shell脚本代码,
需求描述:
删除文件,目录结构为 ip/年份/月份,每个人都有一份这样的目录现需要删除2012年以前的所有文件,2012年以后的删除特定月份。
一开始想使用find 命令,结果发现这些文件time(a,m,c) 记录已经不是当初生成的。
只能自己写段shell脚本,进行遍历处理了。
例子:
复制代码 代码示例:
#!/bin/bash
#
#site: www.jb200.com
cd /home/wanggy/rmfile/
ls -l | grep ^d |
linuxjishu/13830.html target=_blank class=infotextkey>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