2010-06-21 2 views
2

Мне нужно отображать имя, размер, дату файлов с помощью команды ls -l unix в groovy.'ls -l' in groovy

Как мы можем запустить ls -l в groovy для просмотра информации?

благодарит заранее.

ответ

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 и JavaDocs для файла, чтобы увидеть все способы, которыми Вы можете фильтровать файлы, и все свойства, которые имеют доступ.

Конечно, у вас может быть любой код в этом блоке, заменив println.

В мире Perl мы узнали, что обычно нужно избегать вызова команд оболочки, когда собственный параметр Perl является опцией. Я считаю, что это еще более верно в Groovy. Конечно, у вас может быть специальное требование, в котором вам понадобится точный вывод 'ls -l'.

+0

Да, мое требование - производить точный выход. Но я хотел бы рассмотреть ваш комментарий. мое требование может измениться сейчас. спасибо за комментарий – Srinath

+0

Для любого профессионального развития платформ это решение должно быть в значительной степени благоприятным, поскольку оно независимо от платформы, быстрее и надежнее. Для ваших собственных скриптов я бы сказал, что с этим все еще легче справиться, но иногда при написании сценариев вы просто хотите получить материал. –

Смежные вопросы