Groovy中的Unix-FIND命令

Groovy中的Unix-FIND命令,unix,groovy,scripting,ksh,groovy-console,Unix,Groovy,Scripting,Ksh,Groovy Console,我正在将KornShell(ksh)脚本转换为Groovy。我有下面的Find命令-在不依赖Unix命令的情况下执行类似操作的Groovy方法是什么(我需要它来跨平台工作,所以我不能执行“blah blah.execute()) find-name-type f-mtime+140-level 0 这段代码搜索源目录中与文件模式匹配且超过140天的所有文件(无子目录)。Groovy提供了一些在目录中搜索的方法:针对-level0情况,或针对一般情况。例如: use(groovy.time.Ti

我正在将KornShell(ksh)脚本转换为Groovy。我有下面的Find命令-在不依赖Unix命令的情况下执行类似操作的Groovy方法是什么(我需要它来跨平台工作,所以我不能执行“blah blah.execute())

find-name-type f-mtime+140-level 0

这段代码搜索源目录中与文件模式匹配且超过140天的所有文件(无子目录)。

Groovy提供了一些在目录中搜索的方法:针对
-level0
情况,或针对一般情况。例如:

use(groovy.time.TimeCategory) {
    new File(".").eachFile { file ->
        if (file.isFile() &&
            file.lastModified() < (new Date() - 140.days).time) {
            println file
        }
    }
}
use(groovy.time.TimeCategory){
新文件(“.”)。每个文件{File->
if(file.isFile()文件)&&
file.lastModified()<(新日期()-140.days.time){
println文件
}
}
}

或者,如果您正在执行级别0,则可以执行File.listFiles(),然后使用findAll将旧文件放入集合询问者还希望根据需要使用eachFileMatch()的模式匹配名称,例如新文件('..')。eachFileMatch(~/.\.JPG/){。。。
use(groovy.time.TimeCategory) {
    new File(".").eachFile { file ->
        if (file.isFile() &&
            file.lastModified() < (new Date() - 140.days).time) {
            println file
        }
    }
}