最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell腳本遞歸遍歷目錄及子目錄的例子分享

 更新時間:2014年04月09日 10:59:23   作者:  
這篇文章主要介紹了shell腳本遞歸遍歷目錄及子目錄的例子,需要的朋友可以參考下

用shell寫的遞歸遍歷目錄的腳本,腳本實現(xiàn)遞歸遍歷指定目錄,打印目錄下的文件名。

實例1:

復(fù)制代碼 代碼如下:

#!/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

實例2:遞歸讀取目錄及其子目錄

復(fù)制代碼 代碼如下:
#! /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


這樣給test.sh加上執(zhí)行權(quán)限即可執(zhí)行
復(fù)制代碼 代碼如下:
chmod +x test.sh
sh test.sh

到此即可通過傳遞參數(shù)來讀取目錄文件了。

實例3:

復(fù)制代碼 代碼如下:

遞歸實現(xiàn)各個子目錄孫目錄......

#!/bin/bash

#modify.func

doit()   //處理當(dāng)前目錄下的非目錄文件,忽略目錄文件

{

    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()          //從當(dāng)前目錄開始,遞歸處理各目錄

{

    doit $1 $2

    for filename in `ls`

    do

         if [ -d "$filename" ]

         then

             cd $filename

             do_recursive $1 $2

             cd ..

         fi

    done

    return 0

}

modify()                     //處理當(dāng)前目錄,并報告結(jié)果,這個相當(dāng)于主函數(shù),也可以直接調(diào)用do_recursive

{

    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

}

相關(guān)文章

  • Linux解壓縮(打開)Gz文件的命令詳解

    Linux解壓縮(打開)Gz文件的命令詳解

    GNU 的 Gzip 是一種流行的數(shù)據(jù)壓縮程序,而 GZ 文件是由標(biāo)準(zhǔn) Gzip 壓縮的存檔文件,本文給大家介紹了如何在Linux解壓縮(打開)Gz 文件,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • ansible執(zhí)行shell腳本的方法

    ansible執(zhí)行shell腳本的方法

    本文主要介紹了ansible執(zhí)行shell腳本的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 慎用rm -rf /與 rm -rf /* 推薦使用mv代替rm

    慎用rm -rf /與 rm -rf /* 推薦使用mv代替rm

    本文主要介紹了慎用rm -rf /與 rm -rf /* 推薦使用mv代替rm,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • shell 隨機從文件中抽取若干行的實現(xiàn)方法

    shell 隨機從文件中抽取若干行的實現(xiàn)方法

    這篇文章主要介紹了shell 隨機從文件中抽取若干行的實現(xiàn)方法,需要的朋友可以參考下
    2016-03-03
  • Shell編程中的特殊變量之進程狀態(tài)變量介紹

    Shell編程中的特殊變量之進程狀態(tài)變量介紹

    這篇文章主要介紹了Shell編程中的特殊變量之進程狀態(tài)變量介紹,本文講解了$$、$!、$?、$@、$_這些特殊變量,需要的朋友可以參考下
    2014-12-12
  • linux 使用NSF 映射遠(yuǎn)程磁盤目錄的實現(xiàn)

    linux 使用NSF 映射遠(yuǎn)程磁盤目錄的實現(xiàn)

    下面小編就為大家?guī)硪黄猯inux 使用NSF 映射遠(yuǎn)程磁盤目錄的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • shell腳本通過expect實現(xiàn)自動單邊無密登錄功能

    shell腳本通過expect實現(xiàn)自動單邊無密登錄功能

    最近做項目需要實現(xiàn)單邊無密登錄功能,接下來小編給大家分享shell腳本通過expect實現(xiàn)自動單邊無密登錄功能,一起看看吧
    2017-01-01
  • 如何正確使用Linux命令–du

    如何正確使用Linux命令–du

    這篇文章主要為大家詳細(xì)介紹了如何正確使用Linux命令–du,具有一定的實用性,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Linux命令學(xué)習(xí)之用戶切換su,sudo命令詳解

    Linux命令學(xué)習(xí)之用戶切換su,sudo命令詳解

    在操作過程中需要使用特定的用戶進行特定的操作,多數(shù)情況下是因為權(quán)限,比如要修改一個文件,只有root用戶有權(quán)限修改,那么就要切換到root用戶下進行操作,本文給大家講解Linux命令學(xué)習(xí)之用戶切換su,sudo命令,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Linux動態(tài)庫函數(shù)的詳解

    Linux動態(tài)庫函數(shù)的詳解

    這篇文章主要介紹了Linux動態(tài)庫函數(shù)的詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分的內(nèi)容,需要的朋友可以參考下
    2017-10-10

最新評論

迁西县| 都兰县| 汨罗市| 广汉市| 千阳县| 卢湾区| 陈巴尔虎旗| 福清市| 砚山县| 库伦旗| 思南县| 宣威市| 遵化市| 武邑县| 深泽县| 基隆市| 灵武市| 临颍县| 辉县市| 宽城| 盱眙县| 方正县| 江永县| 平凉市| 泾源县| 襄城县| 武安市| 通山县| 广州市| 临清市| 柘城县| 陵水| 福泉市| 望城县| 逊克县| 济源市| 剑河县| 麻栗坡县| 龙门县| 肃宁县| 罗城|