码迷,mamicode.com
首页 > 系统相关 > 详细

shell遍历文件夹并执行命令

时间:2015-05-14 20:20:08      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

背景:

有一个源码包里面包含很多子目录和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

 

shell遍历文件夹并执行命令

标签:

原文地址:http://www.cnblogs.com/chutianyao/p/4504147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!