用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进行过滤。运行效果如下:

相关推荐
峥嵘life2 分钟前
Android16 EDLA【GTS】GtsUnofficialApisUsageTestCases存在fail项
android·linux·运维·学习
晚霞的不甘5 分钟前
Flutter for OpenHarmony 布局探秘:从理论到实战构建交互式组件讲解应用
开发语言·前端·flutter·正则表达式·前端框架·firefox·鸿蒙
海天鹰5 分钟前
fcitx5皮肤
linux
爱吃大芒果7 分钟前
Flutter for OpenHarmony核心组件学习: MaterialApp、Scaffold 两大基础组件以及有无状态组件
开发语言·学习·flutter
晚风吹长发10 分钟前
初步了解Linux中的信号保存和简单使用
linux·运维·服务器·数据结构·后端·算法
林深现海11 分钟前
基于宇树 Go2 与 NaVILA 的全栈视觉导航系统深度解析
linux·vscode·yolo·ubuntu·机器人
阿豪学编程13 分钟前
【Linux】Socket网络编程
linux·服务器·网络
做科研的周师兄14 分钟前
【MATLAB 实战】栅格数据一元线性回归计算(NDVI 趋势分析)| 附完整可运行代码
开发语言·matlab·线性回归
fengfuyao98519 分钟前
基于MATLAB的量子图像加密实现
开发语言·matlab·量子计算
小张成长计划..21 分钟前
【linux】4:编辑器vim的使用
linux·编辑器·vim