`
yugouai
  • 浏览: 497557 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Shell递归遍历目录下文件

 
阅读更多

遍历linux某目录下的所有文件

#!/bin/bash

# $1是运行脚本时,输入的第一个参数,这里指的是使用者希望搜索的目录
# 下面的代码是对目录进行判断,如果为空则使用脚本所在的目录;否则,搜索用户输入的目录
if [[ -z "$1" ]] || [[ ! -d "$1" ]]; then
    echo "The directory is empty or not exist!"
    echo "It will use the current directory."
    nowdir=$(pwd)
else
    nowdir=$(cd $1; pwd)
fi
echo "$nowdir"

# 递归函数的实现
function SearchCfile()
{
    cd $1
    #这里可以修改为判断文件类型,如.c,.java等等文件类型,修改一下grep条件就可以了
    cfilelist=$(ls -l | grep "^-" | awk '{print $9}')
    for cfilename in $cfilelist
    do
        echo $cfilename
    done
# 遍历当前目录,当判断其为目录时,则进入该目录递归调用该函数;
    dirlist=$(ls)
    for dirname in $dirlist      
    do
        if [[ -d "$dirname" ]];then
            cd $dirname
            #SearchCfile 这里有bug,跳转到根目录了
            #这里把当前的目录作为参数输入
            SearchCfile $(pwd)
            cd ..
        fi;
    done;
}

# 调用上述递归调用函数
SearchCfile $nowdir

 

分享到:
评论

相关推荐

    【shell】遍历文件夹下所有文件

    对linux命令tree的简单实现,遍历指定文件夹下的所有文件

    Shell脚本实现从文件夹中递归复制文件

    本文将详细介绍一个实用的Shell脚本,该脚本能够从多层级(例如十层左右)的文件夹结构中递归复制所有文件到指定的目标目录。 #### 需求分析 假设我们的文件系统中有如下结构: ``` dir1 ├── a │ ├── b │ ...

    shell 递归遍历目录下的所有文件并统一改名的方法

    ### Shell脚本递归遍历目录并统一重命名文件的方法 #### 一、问题背景与需求分析 在日常工作中,可能会遇到需要批量处理文件名称的情况,例如为了方便管理和搜索,需要将某目录及其子目录下的所有文件名统一修改。...

    详解shell 遍历文件夹内所有文件并打印绝对路径

    ### 五、递归遍历详解 1. **函数定义**: ```bash function getdir() { # 函数体... } ``` `getdir`函数接收一个参数,即需要遍历的目录路径。 2. **内部循环**: ```bash for file in "$1"/* do # 循环体...

    Linux 遍历目录

    在Linux操作系统中,遍历目录是一项基础且至关重要的任务,尤其对于系统管理员和开发者来说,了解如何有效地遍历和操作文件系统是必备技能。Linux是一个类UNIX系统,其文件系统结构遵循一种层次化的树状模型,从根...

    Shell脚本遍历目录并批量修改文件编码

    - **遍历目录**:是指按照特定顺序访问目录下的所有文件和子目录的过程。 - **文件编码**:指文件中的文本数据如何被表示。常见的编码有GBK、UTF-8等。 - **iconv工具**:是Linux系统中用于转换文件编码的一种工具,...

    遍历磁盘目录.rar

    在Java中,可以利用`java.io.File`类的`list()`或`listFiles()`方法遍历目录,如果需要递归遍历,可以使用递归函数。 遍历目录时,需要注意几个关键点: 1. **权限**:访问某些目录可能需要特定的权限,因此在遍历...

    利用shell脚本遍历文件夹内所有的文件并作整理统计的方法

    这个函数使用`ls`命令列出当前目录下的文件和子目录,然后通过条件判断来决定是继续递归处理子目录还是处理当前文件。对于文件,我们使用`basename`命令提取文件的基本名称(不包括路径)。 在第二个示例中,我们...

    遍历磁盘目录,遍历所有文件

    // 对每个文件或子目录进行操作,如检查文件类型或递归遍历子目录 if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { TraverseDirectory(std::string(dirPath) + "\\" + data.cFileName); } } } while...

    使用Shell遍历目录及其子目录中的所有文件方法

    # 定义一个名为read_dir的函数,用于递归遍历目录 function read_dir() { for file in `ls $1` do # 检查当前元素是否为目录 if [ -d $1"/"$file ] then # 如果是目录,递归调用read_dir函数 read_dir $1"/"$...

    shell递归输出文件名和目录名的方法

    最近遇到一个问题,输出指定目录下的所有子目录以及所有文件名 ...以上这篇shell递归输出文件名和目录名的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    易语言非递归算法遍历目录的代码示例

    在编程领域,遍历目录是常见的任务之一,用于获取指定目录及其子目录中的所有文件信息。易语言是一种中文编程环境,它提供了丰富的内置函数和库来简化这一过程。本篇文章将详细讲解如何使用易语言的非递归算法来遍历...

    2018211582-李志毅-第二次作业1

    通过这次实验,我们获得了丰富的知识点,包括 Linux 文件目录遍历的实现方式、ls 命令的选项、文件信息输出、递归遍历目录、选项结构体、getOpt 函数、vi 编辑工具、Linux 库函数和系统调用、Shell 文件通配符和文件...

    遍历输入的目录

    "遍历目录"是指通过编程方式逐个访问指定目录及其子目录下的所有文件和子目录,包括隐藏文件。这种操作通常用于文件备份、文件搜索、日志分析等多种场景。接下来,我们将深入探讨如何在不同的编程语言中实现遍历目录...

    批量提取目录下(包含子目录).c/.h文件

    在IT行业中,批量处理任务是常见的需求...综上所述,这个工具涉及到了Python编程、文件系统操作、递归遍历、文件复制、批处理执行等多个IT知识点。通过理解和应用这些概念,开发者可以构建出高效且灵活的文件处理工具。

    文件夹递归查询所有文件夹内容替换目标文本

    Java的`java.io`和`java.nio.file`包提供了必要的API,可以用来读取文件、遍历目录树以及执行文本替换操作。 递归遍历文件夹通常涉及以下步骤: 1. 使用`java.nio.file.Files`类的`walkFileTree`方法,该方法可以从...

    Linux系统递归生成目录中文件的md5的方法

    PHP脚本提供了一个灵活的方法来遍历目录并计算每个文件的MD5值。脚本中的`get_file_md5()`函数是一个递归函数,它首先获取指定路径下的所有文件和子目录,然后对每个非`.`和`..`的文件或目录进行处理。如果遇到子...

Global site tag (gtag.js) - Google Analytics