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

需求:删除文件,目录结构为: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

(0)

相关推荐

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

    需求:删除文件,目录结构为:ip/年份/月份,每个人都有一份这样的目录现需要删除2012年以前的所有文件,2012年以后的删除特定月份.本来想用find,结果发现这些文件time(a,m,c)记录已经不是当初生成的.没办法只好想了个土办法去遍历,哪位有好的方法,欢迎告知. 复制代码 代码如下: #!/bin/bashcd /home/wanggy/rmfile/ls  -l | grep ^d | awk '{print $NF}'  >/home/wanggy/tmpcat /home/wan

  • 使用批处理脚本在特定目录中启动Git-Bash窗口

    问题描述 平时想要在项目目录中输入git命令,我需要先打开git-bash窗口,然后还要cd到项目目录中.这挺麻烦的.我现在想: 通过批处理脚本,直接在某个目录中启动git-bash窗口. 实现 在项目目录下,创建一个批处理脚本(StartGitBash.bat)文件,写入如下的命令: start F:\Program" "Files\Git\git-bash.exe --cd=D:\dev\workspace\HexoTools 命令解释start用于启动一个窗口F:\Program

  • 批量转换目录下文件编码的shell脚本代码

    一例批量转换目录下文件编码的shell脚本代码. 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8. 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非utf8文件为gbk,如果文件类型不一致需要修改. 例子: 复制代码 代码如下: #!/bin/bash# File Name: iconv.sh# Author: wanggy# site: www.jb51.net#show_file(){    for file in `ls $1`   

  • Android如何遍历特定目录下所有文件

    第一个案例为大家分享了Android遍历特定目录下所有文件,包含子目录的,并删除最新创建的. private boolean deleteLastFromFloder(String path) { boolean success = false; try { ArrayList<File> images = new ArrayList<File>(); getFiles(images, path); File latestSavedImage = images.get(0); if

  • PHP简单实现遍历目录下特定文件的方法小结

    本文实例讲述了PHP简单实现遍历目录下特定文件的方法.分享给大家供大家参考,具体如下: 1. 使用glob方法 foreach (glob("modules/*.php") as $filename) { echo $filename; } 2. 利用Linux下的ls命令 function iterator($pattern, $__FILE__) { preg_match("/^(.+)\/[^\/]+$/", $__FILE__, $matches); $ls

  • shell在指定目录下批量执行sql脚本的实例

    如下所示: #!/bin/bash #execute all script in specified directory MYDATE=`date +%F'-'%T'-'%w` MYSQL_PATH=/tmp/scripts #指定的目录 LOG_FILE=/tmp/scripts/exec_${MYDATE}.log confirm= db_name= db_pass= for file in ${MYSQL_PATH}/* do if [ -f "$file" ] ; then p

  • 使用Shell遍历目录及其子目录中的所有文件方法

    新建一个shell文件 $ vi traveDir.sh 输入以下代码 #! /bin/bash function read_dir(){ for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令 do if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错 then read_dir $1"/"$file else echo $1"/"$file #在此处处理文件即可 fi done } #

  • Python复制目录结构脚本代码分享

    引言 有个需要,需要把某个目录下的目录结构进行复制,不要文件,当目录结构很少的时候可以手工去建立,当目录结构复杂,目录层次很深,目录很多的时候,这个时候要是还是手动去建立的话,实在不是一种好的方法,弄不好会死人的.写一个python脚本来处理吧. 首先了解 写python脚本前,先了解几个东西 复制代码 代码如下: #!/usr/bin/python 这个东西写过脚本的人都知道,用来标明该脚本的执行器,类似的还有 复制代码 代码如下: #!/bin/bash       通过bash来执行 #!

  • linux shell 中判断文件、目录是否存在的方法

    本文主要介绍了linux shell 中判断文件.目录是否存在的方法,分享给大家 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filenam

  • wget下载整个网站(整个子目录)或特定目录

    使用wget命令下载父目录下的整个子目录 使用wget命令下载父目录下的整个子目录,命令如下: wget -r --level=0 -E --ignore-length -x -k -p -erobots=off -np -N http://www.remote.com/remote/presentation/dir 将会下载远程服务器的整个文件夹下到你电脑当前文件目录下. 如何使用 wget 下载一个目录下的所有文件 wget -r -np -nH -R index.html http://u

随机推荐