perl - 仅打印最近的文件
问题描述
我只想打印目录中最近的文件。
我的脚本:
#!/usr/bin/perl
#use strict;
#use warnings;
@files = <'/mnt/SESSIONS*'>;
foreach $file (@files) {
print $file . "\n";
}
输出:
/mnt/SESSIONS2018-12-18_14_00.log
/mnt/SESSIONS2018-12-18_14_15.log
/mnt/SESSIONS2018-12-18_14_30.log
/mnt/SESSIONS2018-12-18_14_45.log
/mnt/SESSIONS2018-12-18_15_00.log
我只想要最近的文件名,即/mnt/SESSIONS2018-12-18_15_00.log
.
你有想法吗?
解决方案
评论中的先前建议将您引向 -M 运算符/函数,它返回(定义)文件的修改时间 - 假设文件仅在使用时被修改,而不是在那之后不再更改。
您陈述问题的方式表明您想要以最新名称命名的文件 - 这样可以更快地使用您已经在内存中拥有的信息,即名称本身。
my ($latest) = sort { $b cmp $a } @files;
print "$latest\n";
提到的以及您可能想进一步阅读的内容是:
推荐阅读
- python - 如何使用 python 中的可用方法在 3d 中的点中拟合平面
- rest - 我们在 REST API 中对相同的 customResponse 代码有不同的消息,这是正确的吗?
- ios - 如何从 Swift UI 框架到达的情节提要中单击按钮进行导航?
- macos - 测试自动化工具 - MacOS
- reactjs - 通过浏览器调用 Tableau REST API 引发 CORS 错误
- c# - Unity - 我怎样才能让蛇收集食物以获得分数?
- django - Django 会话 | 光与暗主题
- amazon-web-services - 如何在调用 get-cluster-credentials 时添加条件以匹配 aws:user 和 redshift db-user
- vue.js - 在里面使用 v-mask
- reactjs - client.join() 导致 ReferenceError: window is not defined