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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM