2010-06-21 39 views
2

我需要在groovy中使用ls -l unix命令来显示文件的名称,大小和日期。'ls -l'in groovy

如何在groovy中运行ls -l查看信息?

在此先感谢。

回答

5
"ls -l".execute().text 

应该这样做

4
def list = 'ls -l'.execute().text 
list.eachLine{ 
    // code goes here 
} 
4

如果你不介意自己限制到Java的知道该文件的属性,你可以在一个更轻便,灵活,安全和高效的方式使用做到这一点File类的方法。

File dir = new File(".") 
dir.eachFile { f -> 
    println "${f} ${f.size()} ${new Date(f.lastModified())}" 
} 

同时检查GroovyDocs和文件,看看你可以过滤文件的所有方法的JavaDoc中,所有可以访问的属性。

当然,你可以在该块中有任何代码,取代println。

在Perl世界中,我们了解到当本机Perl是一个选项时,通常要避免调用shell命令。我认为Groovy更是如此。当然,你可能有一个特殊的要求,你需要确切的输出'ls -l'会产生。

+0

是的我的要求是产生精确的输出。但我想考虑你的评论。我的要求现在可能会改变。感谢您的评论 – Srinath 2010-07-08 06:24:38

+0

对于任何类型的专业付费开发,此解决方案应该受到青睐,因为它独立于平台,更快,更可靠。对于你自己的脚本,我会说这个问题还是比较容易处理的,但有时脚本编写时你只是想完成一些东西。 – 2017-02-22 21:38:34