• shell递归遍历目录的方法


    方法一:

    #!/bin/sh
    
    function scandir() {
        local cur_dir parent_dir workdir
        workdir=$1
        cd ${workdir}
        if [ ${workdir} = "/" ]
        then
            cur_dir=""
        else
            cur_dir=$(pwd)
        fi
    
        for dirlist in $(ls ${cur_dir})
        do
            if test -d ${dirlist};then
                cd ${dirlist}
                scandir ${cur_dir}/${dirlist}
                cd ..
            else
                echo ${cur_dir}/${dirlist}
            fi
        done
    }
    
    if test -d $1
    then
        scandir $1
    elif test -f $1
    then
        echo "you input a file but not a directory,pls reinput and try again"
        exit 1
    else
        echo "the Directory isn't exist which you input,pls input a new one!!"
        exit 1
    fi

    方法二、

    #! /bin/bash
    function read_dir(){
        for file in `ls $1`
        do
            if [ -d $1"/"$file ]  //注意此处之间一定要加上空格,否则会报错
            then
                read_dir $1"/"$file
            else
                echo $1"/"$file
            fi
        done
    }
    #测试目录 test
    read_dir test

    其实这两种方法的本质都是一样的,只是第一个写的多一些。

    坚持!
  • 相关阅读:
    div+css简写原则
    并发控制
    div+css之块级元素与内联元素
    window.event对象属性(转)
    SQL SERVER 架构管理
    关系的规范化
    js常用事件
    物联小白CoAP协议
    图片不停的横滚
    DropDownlist编程问题
  • 原文地址:https://www.cnblogs.com/doubilaile/p/7940660.html
Copyright © 2020-2023  润新知