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

perl 递归地遍历目录下的文件

 
阅读更多
复制代码
#!/usr/bin/perl -w
use strict;
use File::Spec;

local $\ ="\n";#当前模块的每行输出加入换行符    

my %options;

#目录路径
$options{single_case} = '/home/jiangyu/src/pl/Example';

   my @cases;
    if (-d $options{single_case}) {#判断目录是否存在
        my @files;
        my $dh;
        push(@files, $options{single_case});
        while (@files) {
            if (-d $files[0]) {#若是目录执行以下操作
                opendir $dh, $files[0] or die $!;#打开目录句柄,若失败打印错误信息
                @_ = grep { /^[^\.]/ } readdir $dh;#过滤掉以"."和".."的文件,即UNIX下的隐藏文件
                foreach (@_) {
                    push(@files, File::Spec->catfile ($files[0], $_));#连接目录名和文件名形成一个完整的文件路径:
                }
                closedir $dh;
            }
            #若是文件直接压入数组@cases中
            elsif ($files[0] =~ /\.t$/) {
                push(@cases, $files[0]);
            }
            shift @files;
        }
    }
    else {
        @cases = ($options{single_case});
    }


print $_ foreach @cases;#打印文件列表
复制代码

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Perl脚本实现递归遍历目录下的文件

    下面是一个简单的Perl脚本,用于递归遍历目录下的所有文件: ```perl #!/usr/bin/perl -w use strict; use File::Spec; local $\ = "\n"; # 设置每行输出后添加换行符 my %options; $options{single_case} = '/...

    Perl脚本实现递归遍历目录下的文件.pl

    载入目录路径并且搜索所有目录下任意文件类型,linux下过滤掉以"."和".."的文件,即UNIX下的隐藏文件

    Perl 将只读文件属性改成可写文件属性 source

    - 递归地遍历指定目录下的所有文件。 - 检查每个文件是否与提供的匹配字符串相匹配。 - 如果匹配成功且文件当前为只读,则打印文件名并统计文件数量。 #### 4.2 ChangeFileAttr 子程序 - 功能与`PrintFileNames`...

    Desktop.zip

    例如,read_dir3.pl可能是一个递归函数,用于遍历目录结构,列出所有子目录和文件。 对象是面向对象编程的基础,它们封装了数据和操作这些数据的方法。在Perl中,你可以通过创建类(class)并实例化对象来实现面向...

    Perl分析文件夹大小示例

    这个脚本首先定义了一个名为`sum_dir_size`的递归函数,它会遍历目录中的每个文件和子目录。对于每个文件,它使用`-s`文件测试操作符获取文件大小,并累加到总大小中。如果遇到的是子目录,函数会递归调用自身,继续...

    gpgdir:使用GnuPG进行递归目录加密

    gpgdir递归地遍历目录,以便对目录及其所有子目录中的每个文件进行加密,解密,签名或验证。 默认情况下,所有文件的mtime和atime值将在加密和解密时保留(可以使用--no-preserve-times选项禁用)。 请注意,在--...

    Perl统计小工具开发

    在Perl中,`find`通常指的是递归搜索目录的函数,类似Unix命令行工具`find`的功能,但这里可能是对数据或文件内容的查找。这个脚本可能包含了读取文件、过滤数据、计数、排序或其他统计相关的操作。 结合以上信息,...

    permission.pl

    3. 遍历目录结构:如果需要递归地处理整个目录树,脚本可能会使用`opendir`和`readdir`函数遍历目录,并对每个文件或子目录应用权限变更。 4. 权限验证:可能包含逻辑来确保用户有适当的权限进行操作,防止未经授权...

    Higher order perl programming

    - **文件系统交互**: 展示了如何使用Perl进行复杂的文件操作,包括文件读写、目录遍历等。 - **HTML处理**: 介绍了如何使用Perl对HTML文档进行解析和处理,这对于网页爬虫等应用非常有用。 - **数据库访问**: 讨论了...

    PERL编程24学时教程.pdf

    15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下的 加锁问题 180 15.5.4 在其他地方使用文件锁的问题 181 15.6 课时小结 181 15.7 课外作业 181 15.7.1 ...

    cpr:在Windows和linux中,以UTF-8支持在子目录下递归复制到使用Perl正则表达式搜索的当前路径文件

    在描述中,提到cpr能够从子目录中递归复制文件到当前路径,这意味着它会遍历指定源目录及其所有子目录,并将匹配正则表达式的文件复制到目标位置,即当前工作目录。这种递归复制对于需要在整个目录结构中进行批量...

    批量获取文件信息.zip

    1. **遍历目录**:使用`find`命令可以很容易地列出当前目录及其子目录下的所有文件,`-type f`选项指定只查找文件。 2. **获取文件信息**:`stat`命令可以提供文件的详细信息,包括大小、修改时间、访问时间和创建...

    移动文件到指定的目录

    6. **递归移动**:如果需要移动整个目录及其子目录中的所有文件,那么程序应该具备递归功能,能够遍历并处理所有子目录内的文件。 7. **安全性和备份**:在进行大规模文件移动时,确保数据的安全性和可恢复性至关...

    高阶Perl [中文版] Higher-Order Perl [2013] Mark.Jason.Dominus

    比如,书中详细讲解了如何实现不同数制之间的转换、如何进行目录遍历以及递归在实际编程中的适用条件等。 2. **代码引用与分配表**:介绍了代码引用的高级用法——分配表。通过这种方式,可以更灵活地管理和控制...

    Perl.by.Example.4th.Edition

    此外,书中的章节还涉及了文件和目录操作,如读写文件、遍历目录树,这对于系统管理和自动化任务非常有用。在网络编程方面,Perl可以用来编写客户端和服务端脚本,例如HTTP请求、Socket通信等,这些内容在互联网应用...

    perl编程24学时教程.rar

    本书循序渐进、深入浅出地介绍了Perl的主要特性及用Perl进行CGI编程的知识。全书包括24个学时内容和一个附录,共分四部分。第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何...

    PERL编程24学时教程

    15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下的 加锁问题 180 15.5.4 在其他地方使用文件锁的问题 181 15.6 课时小结 181 15.7 课外作业 181 15.7.1 ...

    Perl入门及高级编程

    6. 文件和目录操作:高级文件和目录处理,如递归遍历、权限管理等。 7. 网络编程:连接TCP/IP网络,发送和接收数据。 8. 正则表达式进阶:深入学习复杂的正则表达式构造和模式匹配技巧。 "说明.txt"可能包含了这份...

    perl语言脚本文档说明

    15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下的 加锁问题 180 15.5.4 在其他地方使用文件锁的问题 181 15.6 课时小结 181 15.7 课外作业 181 ...

Global site tag (gtag.js) - Google Analytics