Linux Shell之递归读取指定目录下的所有文件

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell之递归读取指定目录下的所有文件相关的知识,希望对你有一定的参考价值。

使用shell递归读取指定目录下的所有文件,代码如下:

#!/bin/bash

# 采集一个函数
readDir() 
  # 获取传入的目录路径
  local dir=$1
  # 循环指定目录下的所有文件
  local files
  files=$(ls "$dir")
  for file in $files; do
    local path="$dir/$file" #指的是当前遍历文件的完整路径
    # 判断是否是目录,如果是目录则递归遍历,如果是文件则打印该文件的完整路径
    if [ -d "$path" ]; then
      readDir "$path"
    else
      echo "$path"
    fi
  done


# 调用函数,传入顶级目录为/root
readDir /root

注意,递归函数要使用局部变量,不要使用全局变量。

以上是关于Linux Shell之递归读取指定目录下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统shell脚本之检测两台服务器指定目录下的文件一致性

Java读取指定目录下的所有文件(子目录里的文件也可递归得到)

如何获取目录下的文件数(一行Python)

Linux实验 Shell程序设计

Shell脚本递归打印指定文件夹中全部文件夹文件

Linux rm命令