用perl查找文件夹中的所有文件和目录

查找文件夹中的文件和目录是一个很常见的操作,使用perl的File::Find模块可以很方便的实现。首先使用perldoc File::Find 查看一下文档:

这个核心的就是文档中描述的回调函数。我们举一个实际的例子,一个空的git仓库为例,下面的脚本用于查找文件夹中的所有文件:

perl 复制代码
#! /usr/bin/perl
use v5.14;
use File::Find;

my @filesArry = ();
my $callback = sub {
	push @filesArry, $File::Find::name if -f;
};

find($callback, "./");

say for @filesArry;

回调函数中用 -f进行了过滤,只查找文件。

运行效果如下:

对于查找文件夹中的目录,方法是一样的,修改一下过滤条件就行。代码如下:

perl 复制代码
#! /usr/bin/perl
use v5.14;
use File::Find;

my @dirsArry = ();
my $callback = sub {
	push @dirsArry, $File::Find::name if -d;
};

find($callback, "./");

say for @dirsArry;

使用 -d进行过滤。运行效果如下:

相关推荐
Henry Zhu1231 分钟前
Qt Model/View架构详解(三):自定义模型
开发语言·qt
野生技术架构师2 分钟前
【面试题】为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?
java·开发语言
Leo July2 分钟前
【Java】Java设计模式实战指南:从原理到框架应用
java·开发语言·设计模式
xqhoj3 分钟前
Linux学习指南(二)——进程
linux·运维·服务器
冬奇Lab3 分钟前
【Kotlin系列13】DSL设计:构建类型安全的领域语言
开发语言·安全·kotlin
猫猫的小茶馆6 分钟前
【Linux 驱动开发】三. 应用程序调用驱动过程分析
linux·arm开发·驱动开发·stm32·单片机·嵌入式硬件·pcb工艺
yangSnowy11 分钟前
Linux实用命令分析nginx系统日志文件
linux·运维·服务器
2501_9445215916 分钟前
Flutter for OpenHarmony 微动漫App实战:分享功能实现
android·开发语言·javascript·flutter·ecmascript
嵌入式小能手20 分钟前
飞凌嵌入式ElfBoard-系统信息与资源之休眠
c语言·开发语言·算法
橘子师兄21 分钟前
C++AI大模型接入SDK—API接入大模型思路
开发语言·数据结构·c++·人工智能