Bash, найти, Exec и эхо - PullRequest
       17

Bash, найти, Exec и эхо

8 голосов
/ 17 декабря 2010
find . \
  -name 'user_prefs' \
  -exec echo "whitelist_from basheer@hydrofitgroup.com" >> {} \;'

Я хотел бы добавить строку whitelist_from basheer@hydrofitgroup.com ко всем файлам, найденным find, но моя команда не работает. Он просто создает файл '{}'.

Должен ли я использовать команду for?

спасибо!

Ответы [ 2 ]

11 голосов
/ 17 декабря 2010

Вы должны выйти из «>>», например, так:

find . -name 'user_prefs' -exec sh -c 'echo "whitelist_from basheer@hydrofitgroup.com" >> {}' \;
4 голосов
/ 17 декабря 2010

Как уже было сказано, использование xargs рекомендуется, но вы также можете избежать многократного выполнения sh:

find . -name 'user_prefs' | while read filename; do echo "whitelist_from basheer@hydrofitgroup.com" >>"$filename"; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...