在 perl 中删除超过 12 小时的文件夹 [英] delete folders older than 12 hours in perl

查看:34
本文介绍了在 perl 中删除超过 12 小时的文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要删除超过 12 小时的文件夹.

I need to delete folders older than 12 hours.

这是我的代码,当然不完整.我不知道如何在 perl 中查看每个文件夹的年龄".

Here is my code, not complete of course. I don't know how to see the "age" of each folder in perl.

#!/usr/bin/perl -w

use v5.10.0;                                      
use File::Copy;
use POSIX 'strftime';
use File::Temp;



my $lapso  = 12;  #### is the limit of "age" in hours
my $hour = strftime("%H", localtime(time)); 
say "$hour";
my $limit = strftime "%Y%m%d$H", localtime( time - $lapso * 3_600 );
say "$limit"; #I get the limit of data 

my $dir    = '/home/sim/data/';
opendir(DIR,"$dir");
@files = readdir(DIR);
foreach $file (@files){
print $file, "\n";
}
closedir(DIR)

而且我不需要将文件夹的数据与 $limit 进行比较....

And not I need to compare the data of the folders with the $limit....

有什么帮助吗?

推荐答案

使用 stat 检索文件夹的修改时间并将其与当前时间进行比较,以查看差异是否超过 12 小时.

Use stat to retrieve modification time of folder and compare it to current time to see if difference is more than 12 hours.

您可能还对 File::Remove 模块感兴趣,如果您要删除的文件夹非空.

You might also be interested in File::Remove module if the folders that you want to remove are non-empty.

这篇关于在 perl 中删除超过 12 小时的文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆