bash,find,exec和echo

时间:2010-12-17 13:02:32

标签: bash for-loop command-line find

find . \
  -name 'user_prefs' \
  -exec echo "whitelist_from basheer@hydrofitgroup.com" >> {} \;'

我想将行whitelist_from basheer@hydrofitgroup.com添加到find找到的所有文件中,但我的命令不起作用。 它只是创建文件“{}”。

我是否使用for命令?

谢谢!

2 个答案:

答案 0 :(得分:11)

你必须逃避'>>',例如:

find . -name 'user_prefs' -exec sh -c 'echo "whitelist_from basheer@hydrofitgroup.com" >> {}' \;

答案 1 :(得分:4)

如前所述,鼓励使用xargs,但您也可以避免多次执行sh:

find . -name 'user_prefs' | while read filename; do echo "whitelist_from basheer@hydrofitgroup.com" >>"$filename"; done