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