gpt4 book ai didi

linux - 使用 Perl 快速清理目录

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:59 25 4
gpt4 key购买 nike

我需要清理我的网络服务器上包含数百万个日志文件的目录。我找到了 this great article关于如何做到这一点。然而,我对这一行感兴趣的是一些有趣的事情。

这是我感兴趣的 Perl 代码:

for(<*>){((stat)[9]<(unlink))}

perl -e 'code' 运行.

所以,这是我的问题:

  1. for(<*>)构造 - 我假设它遍历当前目录中的文件。但是它在哪里存储迭代器?
  2. statunlink函数至少需要一个参数,我假设......但是它在哪里?
  3. 为什么调用 (stat)[9] 的结果与调用 (unlink) 的结果进行比较?它会产生什么结果?

抱歉,我是一个不懂 perl 的人,因此我不理解所有这些 Perl 缩写。这就是我问这个问题的原因。

谢谢!

最佳答案

一个类轮需要很多捷径:

  1. <*> 是钻石算子的特例。您不能访问迭代器对象,就像在其他语言中一样。在这里,它调用 glob功能。在列表上下文中,它从所有结果中返回一个列表(它们是文件的行,或者在您的情况下是目录的内容。它的返回值被传递给 for,它遍历列表和别名$_ 中的值。$_ 是许多函数的“默认变量”……
  2. 这让我们来到了这里。许多核心功能默认为 $_没有争论。也是 unlink stat .
  3. (stat)[9]表示执行 stat在列表上下文中并选择第 10 个结果(索引从零开始,这是修改时间)。 (将其与 $foo[9] 之类的数组访问进行比较)。

关于linux - 使用 Perl 快速清理目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27799548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com