Considérer cette commande:
ls /mydir/*.txt | xargs chown root
L'intention est de changer de propriétaire de tous les fichiers texte en mydir
à la racine
Le problème est que si il n'y a aucun .txt
fichiers en mydir
alors 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 d' /home/tom/
puis si il n'y a pas de résultat pour ls /mydir/*.txt
et tous les fichiers dans /home/tom/
leurs propriétaires changé à la racine.
Alors, comment puis-je avoir xargs ignorer un résultat vide?