SHELL脚本 遍历文件夹下所有文件以及子文件夹

2023-11-11

SHELL脚本 遍历文件夹下所有文件以及子文件夹

dir 要设置为局部变量 如果设置为全局变量 在func递归时传入的参数 会改变 dir的值,将导致之后的文件目录错误(为更改后的dir值)

当前目录情况:

执行完shell后:
在这里插入图片描述

附上代码:

#!/bin/bash                                                                                                                                                                                          
   func (){                                                                                          
       local dir="$1"      #local局部变量标识符                                                                                                                                                                 
       for f in `ls $1`                                                                              
       do                                                                                            
           if [ -f "$dir/$f" ]                       #   $dir/$f    保障路径正确                               
           then                                                                                      
              echo "$dir/$f 是文件"                                                                 
          elif [ -d "$dir/$f" ]                                                                     
          then                                                                                      
              echo "$dir/$f是目录"                                                                  
              func "$dir/$f"                #如果是目录再次进行遍历                                                        
          else                                                                                      
              echo "$dir/$f未知"                                                                    
          fi                                                                                                                                                                              
      done                                                                                          
  }                                                                                                 
  func  /root/test                   # func 的第一个参数也就是$1           

如有不对,感谢指出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SHELL脚本 遍历文件夹下所有文件以及子文件夹 的相关文章

  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • 使用 ProcessBuilder 运行 shell 脚本

    我正在尝试使用 Java 和 ProcessBuilder 运行脚本 当我尝试运行时 我收到以下消息 error 2 没有这样的文件或目录 我不知道我做错了什么 但这是我的代码 ps 我尝试只执行不带参数的脚本 错误是相同的 String
  • 计算 TCP 重传次数

    我想知道在LINUX中是否有一种方法可以计算一个流中发生的TCP重传的次数 无论是在客户端还是服务器端 好像netstat s解决了我的目的
  • 在 Linux 控制台中返回一行?

    我知道我可以返回该行并用以下内容覆盖其内容 r 现在我怎样才能进入上一行来改变它呢 或者有没有办法打印到控制台窗口中的特定光标位置 我的目标是使用 PHP 创建一些自刷新的多行控制台应用程序 Use ANSI 转义码 http en wik
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • SMP 上如何处理中断?

    SMP 对称多处理器 多核 机器上如何处理中断 内存管理单元是只有一个还是多个 假设两个线程 A 和 B 运行在不同的内核上 同时 访问页表中不存在的内存页面 在这种情况下 将会出现页面错误 并从内存中引入新页面 将会发生的事件的顺序是什么
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • 在后台使用 HERE_DOC 方法运行脚本

    我有一个应该在后台运行的脚本 我必须在运行 bash 后立即回答一个问题 我该怎么做 nohup python script py lst lt
  • 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

    在一台 GNU Linux 机器上 如果想要执行 实时 亚毫秒级时间关键 任务 您几乎总是必须经历漫长 复杂且容易出现问题的内核补丁过程 以提供足够的支持 1 http en wikipedia org wiki RTLinux Backg
  • Python bash 管道

    我想将 python 脚本的输出通过管道传输到 bash 脚本 到目前为止我所做的是尝试使用os popen sys subprocess 并试图给出一个管道的例子 os popen echo P 1 1 591336 4927369 1
  • 使用 grep 查找所有匹配的模式

    In txt1 S01A1P2 S01A1P5 S01A1P4 In txt2 data train wave S01A1P3 mfc data train wave S01A1P7 mfc data train wave S01A1P8
  • Visual Studio - X11:缺少 DISPLAY 环境变量

    我正在使用 Visual Studio 2019 Enterprise 开发跨平台 Windows Linux x64 GUI 应用程序 在这个 2019 版本中 我们可以使用 Visual Studio调试平台 Windows 本机 和
  • 不要将变量内容视为 sed 中的特殊字符

    我有以下内容sed命令 sed i 4i CHANGES CHANGELOG rst 然而 我的 CHANGES变量看起来像这样 title list elem elem 因此 上述命令失败并出现以下错误 sed e expression
  • Docker exec linux 终端创建别名

    我有一个正在运行且独立的容器 我想在附加到该容器之前创建一个命令别名 当我连接到容器并输入 alias bar foo 创建别名 并可以通过以下方式检查 alias command 但如果我想做同样的事情码头执行者命令即这样 docker
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • 如何从程序内部获取指向程序的特定可执行文件部分的指针? (也许是诽谤)

    我在 Linux 环境中 需要编写一个程序来检索放置在其可执行文件的某个部分中的一些数据 那么 如何从程序内部获取指向程序某个部分 通过其名称 的指针呢 我知道可以使用elf getdata 将节的索引作为参数传递给 get 和Elf Da
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判

随机推荐

  • 微信小程序的介绍与环境配置

    1 微信小程序的介绍 1 1 为什么是微信小程序 微信有海量 且粘性很 在微信 开发产品更容易触达 推 app 或公众号的成本太 开发适配成本低 4 容易 规模试错 然后快速迭代 5 跨平台 1 2 微信小程序历史 2016年1 11 微信
  • 彻底搞懂 SpringBoot jar 可执行原理

    spring boot maven plugin SpringBoot 的可执行jar包又称fat jar 是包含所有第三方依赖的 jar 包 jar 包中嵌入了除 java 虚拟机以外的所有依赖 是一个 all in one jar 包
  • 2017好用的jQuery

    1 jQuery ganttView jQuery ganttView插件是一个非常轻量级的插件 用于在纯HTML中创建甘特图 不需要矢量图形或图像 该插件支持拖动并调整甘特图块和回调的大小以捕获更新的数据 2 SweetDropdown
  • linux为什么会丢log,logrotate转储日志丢了——Linux logrotate的使用注意

    注 本文基于CentOS 7 2编写 logrotate版本为logrotate 3 8 6 6 el7 x86 64 logrotate用于日志转储 可以根据用户配置的规则 将日志转储 或者删除 防止陈年旧账占满磁盘空间 下面介绍一些注意
  • Nacos启动报错

    Nacos启动报错问题的解决方案 nacos官网得知环境要求为jdk1 8 maven3 2 x 为了避免采坑 版本尽量使用官网推荐的 直接上报错 如下 org springframework beans factory Unsatisfi
  • 分配给套接字的IP地址与端口号

    文章目录 1 网络地址 Internet Address 2 网络地址分类与主机地址边界 3 用于区分套接字的端口号 IP 是 Internet Protocol 网络协议 的简写 是为收发网络数据而分配给计算机的值 端口号并非赋予计算机的
  • 五年程序员人生的点点滴滴

    转自 http blog csdn net linux loajie article details 7672455 和大家一样 我也是一名普通的程序员 很快工作五年了 现在依然记得大学时软件工程老师曾说过的一句话 大概是这样的 工作五年之
  • 如何在windows下安装与配置Appium

    如何在windows下安装与配置Appium appium是一款open source 移动自动化测试框架 既支持Android 也支持IOS 工具 原料 JDK adt bundle windows node python appium
  • Grafana(据说全网最详细配置教程)

    见我笔记 https www wolai com fishman tolearn ccb6Z7P4kBr1JQ3m1r2CLs theme light
  • Java中的序列化和反序列化

    java对象序列化是指将java对象转换为字节序列的过程 而反序列化则是将字节序列转换为java对象的过程 我们知道 不同进程 程序间进行远程通信时 可以相互发送各种类型的数据 包括文本 图片 音频 视频等 而这些数据都会以二进制序列的形式
  • Blob,ArrayBuffer,File,FileReader,Buffer,TypeArray 的作用和区别

    Blob Binary Large object 二进制大型对象 是一个相对high level的概念 一个Blob对象可以包含一个或多个连续内存 通常是由一个或多个ArrayBuffer对象组成的数组 ArrayBufer 与 Buffe
  • kubernetes HPA使用及测试

    一 安装metrics server Metrics Server是Kubernetes内置的容器资源指标来源 Metrics Server从node节点上的Kubelet收集资源指标 并通过Metrics API在 Kubernetes
  • TestNG基本注释二:基本注释解释

    在TestNG基本注释一中 我们给出来一个用eclipse IDE生成的TestNG测试类 package test java com testng test import org testng annotations Test impor
  • 机器学习实战5-天气预测系列:利用数据集可视化分析数据,并预测某个城市的天气情况

    大家好 我是微学AI 最近天气真的是多变啊 忽冷忽热 今天再次给大家带来天气的话题 机器学习实战5 天气预测系列 我们将探讨一个城市的气象数据集 并利用机器学习来预测该城市的天气状况 该数据集包含年平均温度和湿度等信息 一 准备工作 首先
  • 【Linux】Ubuntu20.04版本安装谷歌中文输入法【教程】

    Linux Ubuntu20 04版本安装谷歌中文输入法 教程 文章目录 Linux Ubuntu20 04版本安装谷歌中文输入法 教程 一 下载fcitx googlepinyin 二 配置Language Support Referen
  • java随机生成6位验证码的方法对比(这里列出三种)

    第一种方式 不推荐 因为结果可能会出现错误 String code String valueOf new Random nextInt 1000000 这种方式有问题 问题在于 在连续生成多次的情况下 可能会生成小于6位的验证码 测试 fo
  • scrollIntoView 的使用

    描述 将调用此方法的元素滚动到浏览器窗口的可见区域 scrollIntoView 官方文档 用法 element scrollIntoView 用法同 element scrollIntoView true element scrollIn
  • 网络工程师--网络安全与应用案例分析

    案例一 某单位现有网络拓扑结构如下图所示 实现用户上网功能 该网络使用的网络交换机均为三层设备 用户地址分配为手动指定 案例分析一 路由器AR2200的GE0 0 1接口地址为内网地址 为确保内部用户访问Internet 需要在该设备配置
  • 线上验证真的就是点点点吗?

    最近测试了一个项目 与其他4个后台有合作 今天项目上线了 一下配置错了 一下数据错了 真整的有点手忙脚乱 于是 整理了一个checklist 供后续备忘 希望能对大家有所启发 线上验证 有些项目比较单一 或许点点点就足够了 但是遇到与其他项
  • SHELL脚本 遍历文件夹下所有文件以及子文件夹

    SHELL脚本 遍历文件夹下所有文件以及子文件夹 dir 要设置为局部变量 如果设置为全局变量 在func递归时传入的参数 会改变 dir的值 将导致之后的文件目录错误 为更改后的dir值 当前目录情况 执行完shell后 附上代码 bin