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

相关推荐
Reuuse14 小时前
【linux】进程间通信
linux·运维·服务器
code monkey.14 小时前
【Linux之旅】Linux 动静态库与 ELF 加载全解析:从制作到底层原理
linux·服务器·c++·动静态库
moxiaoran575315 小时前
Go语言的文件操作
开发语言·后端·golang
Pluto_CSND15 小时前
CentOS系统中创建定时器
linux·运维·centos
好好沉淀15 小时前
Docker 部署 Kibana:查 ES 版本 + 版本匹配 + 中文界面
linux·docker
我命由我1234515 小时前
Android 开发问题:Duplicate class android.support.v4.app.INotificationSideChannel...
android·java·开发语言·java-ee·android studio·android-studio·android runtime
小白学大数据15 小时前
Python 进阶爬虫:解析知识星球 API
开发语言·爬虫·python
赴前尘15 小时前
记一次golang进程执行卡住的问题排查
开发语言·后端·golang
whale fall15 小时前
如何在同一台电脑里安装32 位 Python 和 64 位 Python
开发语言·笔记·python·学习