SoFunction
Updated on 2025-03-10

Sharing examples of shell script recursively traversing directories and subdirectories


Recursively implement the subdirectories of each subdirectories...

#!/bin/bash

#

doit() //Processing non-directory files in the current directory and ignoring directory files

{

    oldname=`ls | grep "$1$"`

    for name in $oldname

    do

       if [ -d "$name" ]

       then :

       else

            basename=`echo $name | awk -F "." '{print $1}'`  

            newname="$basename$2"                                       

            echo -e "$PWD/$name\t\t$newname"

            mv $name $newname

            count=`expr ${count} + 1`

       fi

    done

    return 0

}

do_recursive()              //From the current directory, process each directory recursively

{

    doit $1 $2

    for filename in `ls`

    do

         if [ -d "$filename" ]

         then

             cd $filename

             do_recursive $1 $2

             cd ..

         fi

    done

    return 0

}

modify()                                                                                                                              �

{

    PARAMS=2

    if [ $# -ne $PARAMS ]

    then

        echo "usage: mv_to .suf1 .suf2"

        return 1

    fi

    count=0

    do_recursive $1 $2

    echo "complete! $count files have been modified."

    return 0

}