`
enjiex
  • 浏览: 67679 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Shell 递归遍历文件夹

 
阅读更多
写这段程序纯属意外,第一次弄Shell,网上搜了一堆才写出来一段准备把maven的repo下的非Sources的jar文件加入到CLASSPATH中。当然最后失败了,因为这个文件夹太大了,很长时间遍历不完,但还好留下了这段遍历文件夹并根据文件后缀名判断文件类型的代码。
CLASSPATH=.
## 把文件路径加入到CLASSPATH中
function append_path(){
        file_suffix=`echo $1 | awk '{print substr($0,length($0)-2)}'`
        source_suffix=`echo $1 | awk '{print substr($0, length($0)-10)}'` 
        if [ "jar" = $file_suffix ]; then
                if [ "sources.jar" != $source_suffix ]; then  
                        CLASSPATH=$CLASSPATH:$1
                fi  
        fi  
}

##递归遍历文件夹
function iterate_dir(){
        for file in $1/*
        do  
                if [ -f $file ]; then
                        append_path $file
                else
                        iterate_dir $file
                fi  
        done

        export CLASSPATH
}

## 这个是方法调用的入口
iterate_dir ~/repo

附:
其实即使上面的程序耗时很短,把相关的jar文件路径加入到了CLASSPATH,其实也会有问题的,大家知道maven库会维护同一个三方包的多个版本,如果同时加入到CLASSPATH中,必然会导致冲突。
另外,在一个Terminal中单独引入一个三方包的方法:
CLASSPATH=$CLASSPATH:/home/enjiex/repo/jdbc/mysql/mysql-connector/5.1.5/mysql-connector-5.1.5.jar
export CLASSPATH
echo $CLASSPATH   ##查看是否加入到了CLASSPATH中

分享到:
评论

相关推荐

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

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

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

    ### 详解Shell脚本遍历文件夹内所有文件并打印绝对路径 #### 一、引言 在Linux或Unix环境中,Shell脚本是一种强大的工具,能够帮助用户执行一系列任务,如文件管理、进程控制等。其中,遍历文件夹内的所有文件并...

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

    在本文中,我们将探讨如何利用Shell脚本来遍历文件夹内的所有文件,并进行整理统计。Shell脚本是一种强大的工具,它允许我们自动化Linux或Unix系统中的文件处理任务。在这个案例中,我们将看到如何通过递归方法遍历...

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

    ### Shell脚本实现从文件夹中递归复制文件 #### 背景介绍 在日常工作中,有时我们可能需要从多层嵌套的文件夹结构中提取特定的文件或者进行数据整理工作。对于这种需求,手动操作显然是低效且耗时的。此时,利用...

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

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

    遍历文件夹中的路径

    这段代码会从指定的`起点文件夹`开始,递归遍历所有子目录,并打印出每个文件的名称和相对路径。 在Java中,可以利用`java.io.File`类的`listFiles()`和`listFiles(FileFilter)`方法。下面的代码片段展示了如何遍历...

    C#遍历文件夹后上传文件夹中所有文件错误案例分析

    总的来说,遍历文件夹并上传所有文件在C#中可以通过递归方法实现,但需要注意权限、安全性和性能优化等问题。对于大型文件或大量文件的上传,可能需要考虑分批处理、异步上传等策略来提高用户体验。

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

    在这个案例中,jar包内部包含了一个Java程序,该程序实现了递归遍历文件夹并进行文本替换的功能。Java的`java.io`和`java.nio.file`包提供了必要的API,可以用来读取文件、遍历目录树以及执行文本替换操作。 递归...

    check_file_permission.sh

    递归遍历文件夹,检查文件夹下所有目录和日志权限

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

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

    Shell脚本实现递归删除空文件夹

    递归删除空文件夹意味着不仅删除指定的空文件夹,而且还要遍历其所有子目录,如果它们也是空的,则一并删除。 首先,让我们看看提供的Shell脚本代码: ```bash #!/bin/bash # author: 十年后的卢哥哥 # des: ...

    vb对文件夹进行操作

    4. **遍历文件夹**:获取文件夹内的所有文件或子文件夹列表。 #### 二、创建文件夹 在VB中,创建文件夹可以使用`MkDir`函数。该函数接受一个参数,即新文件夹的完整路径,如果成功创建则返回True,失败则返回False...

    shell脚本可配置化读取文件夹中文件名称.rar

    本文将深入探讨如何使用shell脚本来实现可配置化的文件夹中文件名称读取,这对于日常的文件管理和自动化任务至关重要。 首先,我们需要了解shell脚本的基本结构。一个简单的shell脚本通常以`#!/bin/bash`开头,这被...

    文件夹,文件录入数据库

    例如,Python的os和os.path模块可以用来遍历文件夹,sqlite3或pymysql库可以用于与数据库交互。在脚本中,我们遍历文件夹,获取每个文件的信息,然后将这些信息插入到数据库表中。 此外,安全性和权限控制也是重要...

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

    首先,非递归算法在遍历目录时不会像递归算法那样通过调用自身来处理子目录,而是通过维护一个数据结构(如队列)来保存待处理的目录列表。这种方式避免了深度过大的递归可能导致的栈溢出问题,同时也提高了程序的...

    复制、删除、移动一个文件夹下所有的文件和文件夹

    在实现复制、删除和移动整个文件夹的功能时,我们需要先遍历文件夹中的所有文件和子文件夹,然后对每个元素分别进行操作。以下是一般步骤: 1. 使用 **FindFirstFile** 获取文件夹中的第一个文件或子文件夹的信息,...

    vc中删除文件夹以及文件夹中的内容的三种方法

    MFC提供了一个方便的类`CFileFind`,可以用来遍历文件夹中的所有文件和子文件夹。你可以使用这个类来找到所有文件和子文件夹,然后逐个删除它们。最后再删除空的父文件夹。 ```cpp void DeleteFolderAndContent...

    循环删除文件夹中的内容

    对于更复杂的场景,如循环遍历文件夹并删除所有内容,我们可以编写脚本。在Python中,可以使用`os`和`shutil`模块实现: ```python import os import shutil def delete_folder_content(folder_path): for root, ...

    具有粘贴,整个文件夹,多文件上传的控件demo(java)

    这可能涉及到递归遍历文件夹结构并将所有文件添加到上传队列的技术。 5. **Java实现**:Java作为一种跨平台的编程语言,提供了丰富的库和框架用于文件操作和网络通信。这个控件可能使用了Java的`java.io`和`java....

    删除.svn文件

    例如,使用Python的os模块,通过递归遍历文件夹并删除.svn目录。 4. **使用第三方工具**:有些文件管理工具或者清理工具提供批量删除特定类型文件或目录的功能,比如使用Total Commander的“搜索/替换”功能,或者...

Global site tag (gtag.js) - Google Analytics