删除文件夹中除最近的 perl 之外的所有内容

发布于 2024-12-10 20:41:53 字数 384 浏览 0 评论 0原文

我试图将一些清理工作合并到我的输出目录中,其中除最近的文件之外的所有文件都将被删除。

my @files = grep{ -f && -t } glob($outputdir);
349 
350 my @expected_file  = grep { /SequenomComparisonSummary\_(\d+)\.txt/} @files;
351 foreach my $file(@expected_file){
352 
353   unlink $file;
354   warn "Removing file $file\n";
355 }

但我想保留目录中最近的内容并删除其余的?有没有更简单的方法来做到这一点?

非常感谢您的建议。

I am trying to incorporate a bit of cleaning up to my output directory, in which all the files other the very recent ones are to be deleted.

my @files = grep{ -f && -t } glob($outputdir);
349 
350 my @expected_file  = grep { /SequenomComparisonSummary\_(\d+)\.txt/} @files;
351 foreach my $file(@expected_file){
352 
353   unlink $file;
354   warn "Removing file $file\n";
355 }

But I want to keep the very recent ones in the directory and delete the rest? Is there a simpler way to do this ?

Thanks a lot for your suggestions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

春庭雪 2024-12-17 20:41:53

怎么样:(

unlink $file if -M $file > 7;  # unlink if older than one week

或者您可以使用 -M > 7 作为 grep 条件的一部分。


grep 条件中的 -t 可能没有按照您的想法进行。来自文档

-t 文件句柄已打开到 tty。”

“如果省略参数,则测试 $_,但 -t 除外,它测试 STDIN。”

因此,代码中的 -t 正在检查 STDIN 是否是终端,我认为这不是您真正想要检查的。

How about:

unlink $file if -M $file > 7;  # unlink if older than one week

(Or you can use -M > 7 as part of your grep condition.)


Ps. The -t in your grep condition is probably not doing what you think it is. From the docs:

"-t Filehandle is opened to a tty."

"If the argument is omitted, tests $_, except for -t, which tests STDIN."

So the -t in your code is checking whether STDIN is a terminal, which I'd assume is not what you really wanted to check.

您的好友蓝忘机已上羡 2024-12-17 20:41:53

我在我的网站上发布了一个脚本来仔细执行此操作(在 Windows 环境中)并允许进行试运行。该脚本位于 http://www.billruppert.com/2009/05 /deleting-old-files.html。这里复制的有点长。

I posted a script on my site to do this carefully (in a Windows environment) and to allow for a dry run. The script is at http://www.billruppert.com/2009/05/deleting-old-files.html. It's a bit long to copy here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文