我一直在编写一个脚本,它将递归搜索文件系统并删除任何超过20天的文件(没有目录).我使用了find2perl命令(这是File :: Find的一部分),这就是结果.(我注意到它不理解该-delete选项,所以我不得不使用旧-exec...选项.)
(截断的脚本部分)
sub delete_old_files {
my ($dev,$ino,$mode,$nlink,$uid,$gid);
(($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
-f _ &&
(int(-M _) > 20) &&
unlink($_);
}
Run Code Online (Sandbox Code Playgroud)
我理解lstat部分,-f文件检查,以及unlink,但我不确定如何(int(-M _) > 20)工作.显然它是在20天内检查修改日期,但我以前从未见过这种语法,并且很想知道它来自何处以及它是如何工作的.我也很好奇它怎么能引用迭代器作为一个普通的下划线,而无需使用$_了-f与时间检查片.