学习笔记之linux shell遍历目录中的文件

来源:互联网 发布:马布里cba比赛数据 编辑:程序博客网 时间:2024/04/29 17:50

#/bin/sh

列出一个目录下的所有普通文件

参数1表示文件目录,参数2表示是否递归,0代表不递归,1表示递归,默认递归模式

function listAllFiles() {

    _FILE_DIR=$1 #文件目录

    _RECURSIVE_MODE=$2  #1表示递归,0表示不递归

    #传入的目录不能为空

    if [ -z "$_FILE_DIR" ]; then

        echo "file dir is Null"

        return 1

    fi

    #如果不是目录直接返回

    if ! [ -d $_FILE_DIR ]; then

        echo "$_FILE_DIR is not a valid file dir..."

        return 1

    fi

    #递归模式,默认使用递归模式

    if [ -z "$_RECURSIVE_MODE" ]; then

        _RECURSIVE_MODE=1

    fi

    echo "Dir : $_FILE_DIR | RecursiveMode : $_RECURSIVE_MODE"

    

    #下面开始遍历目录下的文件

    for file in $_FILE_DIR/*

    do

        if [ -f $file ]; then

            echo $file

        elif [ -d $file ]; then

            if [ $_RECURSIVE_MODE -eq 1 ]; then

                listAllFiles $file

            fi

        fi

    done

    return 0

}

#调用函数显示$1目录中所有的普通文件

echo "start list wait..."

listAllFiles $1 $2 

echo "done..."

    将上面的文本保存为listAllFiles.shchmod u+x listAllFiles.sh 给其增加执行权限,然后通过:./listAllFiles.sh . 就可以将当前目录下的普通文件一一列出。

原创粉丝点击