Розглянемо цю команду:
ls /mydir/*.txt | xargs chown root
Наміром є заміна власників усіх текстових файлів у mydir
root
Проблема полягає в тому, що якщо у .txt
файлах немає файлів mydir
xargs, помилка говорить про те, що шлях не вказаний. Це нешкідливий приклад, тому що помилка кидається, але в деяких випадках, як у сценарії, який мені потрібно тут використовувати, пустий шлях вважається поточним каталогом. Тож якщо я запускаю цю команду з /home/tom/
тих пір, якщо немає результату для, ls /mydir/*.txt
а всі файли під /home/tom/
ними змінили власників на root.
Тож як я можу з xargs ігнорувати порожній результат?
git branch --merged | grep -v '^* ' | xargs git branch -d
, який також не вдається при порожньому введенні
ls
для програмного використання; дивіться mywiki.wooledge.org/ParsingLs