Рассмотрим эту команду:
ls /mydir/*.txt | xargs chown root
Цель состоит в том, чтобы изменить владельцев всех текстовых файлов в mydir на root
Проблема в том, что если в mydir нет файлов .txt, тогда xargs сообщает об ошибке, указав, что пути нет. Это безобидный пример, потому что возникает ошибка, но в некоторых случаях, как и в script, которую я должен использовать здесь, пустым путем считается текущий каталог. Поэтому, если я запустил эту команду из /home/tom/, тогда, если для ls /mydir/*.txt нет результата, а все файлы под /home/tom/, их владельцы изменились на root.
Итак, как я могу заставить xargs игнорировать пустой результат?