广告
返回顶部
首页 > 资讯 > 精选 >怎么用shell写递归遍历目录及子目录的脚本
  • 138
分享到

怎么用shell写递归遍历目录及子目录的脚本

2023-06-09 19:06:08 138人浏览 泡泡鱼
摘要

这篇文章主要讲解了“怎么用shell写递归遍历目录及子目录的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用shell写递归遍历目录及子目录的脚本”吧!用shell写的递归遍历目录的

这篇文章主要讲解了“怎么用shell递归遍历目录及子目录的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用shell写递归遍历目录及子目录的脚本”吧!

用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。

实例1:

代码如下:


#!/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:递归读取目录及其子目录

代码如下:

#! /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加上执行权限即可执行

代码如下:

chmod +x test.sh
sh test.sh


到此即可通过传递参数来读取目录文件了。

实例3:

代码如下:


递归实现各个子目录孙目录......

#!/bin/bash

#modify.func

doit()   //处理当前目录下的非目录文件,忽略目录文件

{

    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()          //从当前目录开始,递归处理各目录

{

    doit $1 $2

    for filename in `ls`

    do

         if [ -d "$filename" ]

         then

             cd $filename

             do_recursive $1 $2

             cd ..

         fi

    done

    return 0

}

modify()                     //处理当前目录,并报告结果,这个相当于主函数,也可以直接调用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

}

感谢各位的阅读,以上就是“怎么用shell写递归遍历目录及子目录的脚本”的内容了,经过本文的学习后,相信大家对怎么用shell写递归遍历目录及子目录的脚本这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用shell写递归遍历目录及子目录的脚本

本文链接: https://www.lsjlt.com/news/257510.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用shell写递归遍历目录及子目录的脚本
    这篇文章主要讲解了“怎么用shell写递归遍历目录及子目录的脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用shell写递归遍历目录及子目录的脚本”吧!用shell写的递归遍历目录的...
    99+
    2023-06-09
  • shell脚本递归遍历目录及子目录的例子分享
    用shell写的递归遍历目录的脚本,脚本实现递归遍历指定目录,打印目录下的文件名。 实例1: #!/bin/shfunction scandir() { local cur_dir parent_di...
    99+
    2022-06-04
    递归 遍历 子目录
  • shell遍历目录处理特定目录的脚本代码
    需求:删除文件,目录结构为:ip/年份/月份,每个人都有一份这样的目录现需要删除2012年以前的所有文件,2012年以后的删除特定月份。本来想用find,结果发现这些文件time(a,m,c)记录已经不是当...
    99+
    2022-06-04
    目录 遍历 脚本
  • 使用Shell怎么遍历目录及其子目录中的所有文件
    本篇文章给大家分享的是有关使用Shell怎么遍历目录及其子目录中的所有文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。新建一个shell文件$ vi tr...
    99+
    2023-06-09
  • 使用Shell遍历目录及其子目录中的所有文件方法
    新建一个shell文件 $ vi traveDir.sh unXPRPHcZz输入以下代码 #! /bin/bash function read_dir(){ for file in `ls $1` #注...
    99+
    2022-06-04
    Shell 遍历目录 文件
  • 怎么用Shell脚本遍历目录并批量修改文件
    本篇内容主要讲解“怎么用Shell脚本遍历目录并批量修改文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Shell脚本遍历目录并批量修改文件”吧!在将windows上的jsp网页移植到l...
    99+
    2023-06-09
  • php怎么不递归实现遍历目录下所有文件
    这篇文章主要介绍php怎么不递归实现遍历目录下所有文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现方法:1、创建一个数组,将要遍历的这个目录放入;2、循环处理这个数组,循环结束的条件是数组为空;3、每次循环,处...
    99+
    2023-06-15
  • 怎么在shell中利用递归遍历目录下的所有文件并统一改名
    本篇文章为大家展示了怎么在shell中利用递归遍历目录下的所有文件并统一改名,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如何实现遍历?我们写一个函数:function travFolde...
    99+
    2023-06-09
  • shell 递归遍历目录下的所有文件并统一改名的方法
    遇到一道题目,如何把某个目录下的每个文件统一在名字前加上”abc”,用shell实现 首先分析,一个目录下除了文件,还可能存在目录,这里可以看出需要有递归操作,如果是文件直接改名,目录则进入然后进行遍历 如何实现遍历?我...
    99+
    2022-06-04
    shell 递归 遍历目录
  • 怎么在shell中利用递归输出文件名和目录名
    这期内容当中小编将会给大家带来有关怎么在shell中利用递归输出文件名和目录名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。shell脚本实现function echo_name(){ ...
    99+
    2023-06-09
  • Python中怎么调用遍历目录树的函数
    本篇文章为大家展示了Python中怎么调用遍历目录树的函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python遍历目录树下面的函数调用os.path.walk(root, myfun...
    99+
    2023-06-17
  • 使用VBS脚本怎么实现遍历批量替换多目录多文件内容
    使用VBS脚本怎么实现遍历批量替换多目录多文件内容?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Set WshShell = CreateObje...
    99+
    2023-06-08
  • Shell中中怎么获取脚本目录的绝对路径
    Shell中中怎么获取脚本目录的绝对路径,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要得到正在执行的程序/脚本自身所存放的绝对路径,在 PHP 里面可以用 dirname...
    99+
    2023-06-09
  • 使用shell怎么在指定目录下批量执行sql脚本
    今天就跟大家聊聊有关使用shell怎么在指定目录下批量执行sql脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如下所示:#!/bin/bash#execute all&...
    99+
    2023-06-09
  • 怎么使用Shell写一个显示目录结构的命令
    本篇文章给大家分享的是有关怎么使用Shell写一个显示目录结构的命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在Linux中使用Shell写一个显示目录结构的命令,快速寻找...
    99+
    2023-06-28
  • 使用bat脚本怎么批量提取指定目录下的文件名
    使用bat脚本怎么批量提取指定目录下的文件名?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。核心代码@echo offecho text input...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作