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