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

 

转载于:https://www.cnblogs.com/chutianyao/p/4504147.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值