遍历目录处理特定目录的shell脚本
时间:2014-11-23 14:15 来源:linux.it.net.cn 作者:IT
一例遍历目录的shell脚本代码,
需求描述:
删除文件,目录结构为 ip/年份/月份,每个人都有一份这样的目录现需要删除2012年以前的所有文件,2012年以后的删除特定月份。
一开始想使用find 命令,结果发现这些文件time(a,m,c) 记录已经不是当初生成的。
只能自己写段shell脚本,进行遍历处理了。
例子:
复制代码代码示例:
#!/bin/bash
#
#site: www.jbxue.com
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
(责任编辑:IT)
一例遍历目录的shell脚本代码,
需求描述:
一开始想使用find 命令,结果发现这些文件time(a,m,c) 记录已经不是当初生成的。
例子:
复制代码代码示例:
#!/bin/bash
# #site: www.jbxue.com 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 |