遍历目录处理特定目录的shell脚本

发布时间:2020-11-04编辑:脚本学堂
分享一例shell脚本,实现遍历指定目录、并处理特定的目录,有需要的朋友参考下。

本节内容:
一例遍历目录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