在Groovy中的'ls -l'

6

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

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

提前致谢。

3个回答

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

应该这样做


6
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())}"
}

请查看File的GroovyDocs和JavaDocs,了解过滤文件的所有方法以及可以访问的所有属性。

当然,在该代码块中,您可以使用任何代码替换println。

在Perl世界中,我们学习到尽可能避免调用shell命令,而是优先选择本地Perl。我认为在Groovy中更加如此。当然,您可能有特殊要求,需要与“ls -l”生成的确切输出相同。


是的,我的要求是产生精确的输出。但我想考虑一下你的评论。我的要求现在可能会改变。谢谢你的评论。 - Srinath
对于任何类型的专业付费开发,这个解决方案应该受到重视,因为它是平台无关的、更快和更可靠的。对于你自己的脚本,我认为这仍然更容易处理,但有时候在编写脚本时,你只想完成任务。 - Bill K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接