博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2、递归遍历文件夹下每一个文件
阅读量:6580 次
发布时间:2019-06-24

本文共 1471 字,大约阅读时间需要 4 分钟。

hot3.png

#!/bin/bash# 获取关键路径:$0是启动的脚本名,dirname $0 是脚本所在的文件夹cd `dirname $0`workDir=`pwd`scriptName=$0basePath=$1# 判断启动脚本是是否输入了集群机器列表文件while truedo    if [[ ${#basePath} -eq 0 ]]; then        read -p "请输入需要遍历的文件路径:" basePath    fi    # 判断集群列表文件是否是绝对路径,如果不是则转化为绝对路径    if [[ ${basePath:0:1} != "/" ]]; then        basePath=$workDir/$basePath    fi    if [ ! -e $basePath ]; then        echo "输入的路径{ ${basePath} } 不存在,请重新输入:"        read  basePath        continue    fi    breakdone# 递归遍历每一个文件夹# 优先处理文件,用childDirPaths来记录文件夹,之后再处理# 注意:childDirPaths=()不能放在方法外面,否则他的值会不断积累,程序没法停止scanEveryDirFirstFile(){    echo $1    if [ -d $1 ]; then        childDirPaths=()        index=0        for childPath in $1/*; do            if [ -d $childPath ]; then                childDirPaths[$index]=$childPath                let index++            else                echo $childPath            fi        done        # 继续遍历子文件夹下的信息        for childDir in ${childDirPaths[@]}; do            scanEveryDirFirstFile $childDir        done    fi}# 递归遍历每一个文件夹# 没有先后之分,遇到什么就处理什么scanEveryDirRandom(){    echo $1    if [ -d $1 ]; then        for childPath in $1/*; do            if [ -d $childPath ]; then                scanEveryDirRandom $childPath            else                echo $childPath            fi        done    fi}scanEveryDirFirstFile $basePathecho ""scanEveryDirRandom $basePath# 总结1、最好不要用隧道,因为隧道是使用另一个shell进程,不能给当前变量赋值2、用于保存dir的变量,要放在方法里面作为局部变量

转载于:https://my.oschina.net/liufukin/blog/2218970

你可能感兴趣的文章
明晰三种常见存储技术:DAS、SAN和NAS
查看>>
ContentProvider简单介绍
查看>>
Visual Studio 2014 CTPs 下载 和C# 6.0 语言预览版介绍
查看>>
js混淆 反混淆 在线
查看>>
python中的Iterable, Iterator,生成器概念
查看>>
WinForm 之 程序启动不显示主窗体
查看>>
【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
查看>>
【转】Oracle索引的类型
查看>>
FragmentTransaction.replace() 你不知道的坑
查看>>
分布式消息队列 Kafka
查看>>
模拟退火算法
查看>>
Solr 按照得分score跟指定字段相乘排序
查看>>
MySQL数据库如何去掉数据库中重复记录
查看>>
【原创】如何写一篇“用户友好”的随笔
查看>>
【16】成对使用new和delete时要采取相同形式
查看>>
POJ 2352 Stars
查看>>
SharpRush中的AOP实现
查看>>
[摘自DbC原则与实践]DbC的一些优点和限制
查看>>
配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
查看>>
.net平台下开源(免费)三维 GIS (地形,游戏)平台资料
查看>>