2010-06-21 12 views
2

J'ai besoin d'afficher le nom, la taille, la date de fichiers en utilisant ls -l commande unix dans groovy.'ls -l' dans groovy

Comment pouvons-nous exécuter ls -l dans groovy pour voir l'info?

merci d'avance.

Répondre

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

devrait le faire

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

Si cela ne vous dérange pas vous limiter aux propriétés du fichier que Java a connaissance, vous pouvez le faire d'une manière plus portable, flexible, sûre et efficace en utilisant méthodes de la classe File.

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

Vérifiez les deux GroovyDocs et les JavaDocs pour le fichier pour voir toutes les façons dont vous pouvez filtrer les fichiers, et toutes les propriétés que vous avez accès.

Bien sûr, vous pourriez avoir du code dans ce bloc, en remplaçant println.

Dans le monde Perl, nous avons appris que l'invocation de commandes shell était généralement à éviter, lorsque Perl natif était une option. C'est encore plus vrai dans Groovy, je dirais. Bien sûr, vous pourriez avoir une exigence particulière, où vous avez besoin de la sortie exacte que 'ls -l' produirait.

+0

oui mon exigence est de produire une sortie exacte. Mais je voudrais considérer votre commentaire. mon exigence peut changer maintenant. merci pour le commentaire – Srinath

+0

Pour tout type de développement professionnel payant, cette solution devrait être fortement favorisée car elle est indépendante de la plate-forme, plus rapide et plus fiable. Pour vos propres scripts, je dirais que c'est encore plus facile à gérer, mais parfois, lorsque vous scriptez, vous voulez juste faire des choses. –