shell遍历目录处理特定目录的脚本代码_linux 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

时间: 2024-09-28 21:52:02

shell遍历目录处理特定目录的脚本代码_linux shell的相关文章

批量转换目录下文件编码的shell脚本代码_linux 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`   

判断文件是否存在的shell脚本代码_linux shell

实现代码一. #!/bin/sh # 判断文件是否存在 # link:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi # 这里的-d

linux中mysql备份shell脚本代码_linux shell

第一步:在你的linux服务器中定义备份目录: 复制代码 代码如下: mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup 第二步:下面是最重要的一步了,就是写定时备份脚本. 复制代码 代码如下: vi dbbackup.sh 代码文件如下 复制代码 代码如下: #!/bin/sh# mysql data backup script## use mysqldump --help,get more detail.#BakDir=/root/back/

查找目录下同名但不同后缀名文件的shell脚本代码_linux shell

因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大概十层左右,每一层又有几十个文件,所以人工找起来非常麻烦,所以写了个脚本,帮他们实现查找指定目录下所有子目录及文件,找出相同文件名,不同后缀的文件,然后,手动保留其中一个. 复制代码 代码如下: #!/bin/bash  #判断一下脚本参数的问题  if [ $# -ne 1 ];then     echo "Usage find_same.sh direcroty"     exit  f

在指定目录查找指定后缀文件的shell脚本代码_linux shell

复制代码 代码如下: #!bin/sh  # 在指定位置查找指定后缀的文件,包括子目录  # 用法:  # findf $1 $2  # 第一个参数为后缀  # 查找指定后缀的文件并打印出来  # link:www.jb51.net# date:2013/2/26 f()  {    list=`find $2|grep "/.$1/>"`    for i in $list      do      echo $i    done  }  # 打印用法  print()  { 

kill特定进程的shell脚本代码_linux shell

1.原始暴力的方法 复制代码 代码如下: myLinux:/home/zhanhailiang/public_html # killall nginx 2.温柔点的方法查找指定进程的pid,并kill|kill -USR1 掉 复制代码 代码如下: myLinux:/home/zhanhailiang/public_html # ps -ef|grep tcpServer|grep -v grep|awk '{print $2}'|xargs kill -9 等价方法: 复制代码 代码如下: m

备份网站内容的shell脚本代码_linux shell

备份网站内容 复制代码 代码如下: #!/bin/bash#指定运行的脚本shell#运行脚本要给用户执行权限bakdir=/backupmonth=`date +%m`day=`date +%d`year=`date +%Y`hour=`date +%k`min=`date +%M`dirname=$year-$month-$day-$hour-$minmkdir $bakdir/$dirnamemkdir $bakdir/$dirname/confmkdir $bakdir/$dirname

几个常用的Linux操作系统监控脚本代码_linux shell

本文介绍了几个常用的Linux监控脚本,可以实现主机网卡流量.系统状况.主机磁盘空间.CPU和内存的使用情况等方面的自动监控与报警.根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 最近时不时有互联网的朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 下面是我常用的几个主机监控的脚本,大家可以根据自己的情况再进

shell结合expect写的批量scp脚本工具_linux shell

在部署一个任务时,其中有一项必须的过程就是将一些文件,如安装包发送到大量的服务器上去.虽然已有宇哥的脚本可用:通过paramiko模块提供的ssh和scp功能编写的python脚本.但我到现在还在对python的恐惧之中(虽然已经在空闲时间努力去学习了),所以使用了shell和expect脚本结合的方式,写了这个批量scp的脚本工具. expect用于自动化地执行linux环境下的命令行交互任务,例如scp.ssh之类需要用户手动输入密码然后确认的任务.有了这个工具,定义在scp过程中可能遇到的