Comment ignorer xargs commandes si stdin d'entrée est vide?

Considérer cette commande:

ls /mydir/*.txt | xargs chown root

L'intention est de changer de propriétaire de tous les fichiers texte dans mydir à la racine

Le problème est que si il n'y a pas .txt fichiers dans mydir puis xargs thows une erreur disant qu'il y a pas de chemin d'accès spécifié. C'est un inoffensif exemple parce qu'une erreur est levée, mais dans certains cas, comme dans le script que j'ai besoin d'utiliser ici, un chemin vide est supposé être le répertoire courant. Donc, si je exécuter cette commande à partir de /home/tom/ puis si il n'y a pas de résultat pour ls /mydir/*.txt et tous les fichiers sous /home/tom/ leurs propriétaires changé à la racine.

Alors, comment puis-je avoir xargs ignorer un résultat vide?

InformationsquelleAutor HyderA | 2011-11-28