zoukankan      html  css  js  c++  java
  • shell遍历文件夹并执行命令

    背景:

    有一个源码包里面包含很多子目录和makefile,打包后的压缩包太大,需要将make生成的所有二进制文件删除然后再打包。

    需求:

    因此,要求在制定目录的所有递归子目录中执行make clean以清楚所有的目标文件。

    代码:

    写了一段简单的shell脚本,有两个功能:

    1.遍历所有子目录,如果存在Makefile就执行make clean(当然也可以干更多的事);

    2.列出所有子目录下大于10M(当然也可以指定其他值)的文件。

    话不多说上代码:

    #!/bin/bash
    run_make()
    {
            #如果该目录下存在Makefile
            if [ -f "Makefile" ];then
                echo ""
                echo ===================== FOUND ===================
                pwd;
                echo ===============================================
                make clean;
            fi
    }
    
    run_ls()
    {
            pwd;
    
            #列出大于10M的文件
            #ls -l |awk '{if($5 > 10485760){print $5}}'
            ls -l |awk '{if($5 > 10485760){print "--",$9,$5}}'
            
            echo ""
    }
    
    myfunc()
    {
            cd $1;
            #run_make;
            run_ls;
    
            for x in $(ls .)
            do
                    if [ -d "$x" ];then
                            myfunc $x;
                            cd ..
                    fi
                
            done
    }
    
    p=.
    if [ $1 ];then
        p=$1
    fi
    echo $p
    
    myfunc $p
  • 相关阅读:
    js读取解析json数据
    dot.js简单入门
    免费API接口整理
    综合方式输出通信数据
    redis常用
    数据库主从复制
    数据库存储过程
    数据库触发器
    局域网访问本地wampserver调试环境
    远程数据同步工具cwRsync
  • 原文地址:https://www.cnblogs.com/chutianyao/p/4504147.html
Copyright © 2011-2022 走看看