【问题标题】:bash, find, exec and echobash、查找、执行和回显
【发布时间】:2011-05-27 02:54:00
【问题描述】:
find . \
-name 'user_prefs' \
-exec echo "whitelist_from basheer@hydrofitgroup.com" >> {} \;'
我想将whitelist_from basheer@hydrofitgroup.com 行添加到find 找到的所有文件中,但我的命令不起作用。
它只是创建文件“{}”。
我应该使用for 命令吗?
谢谢!
【问题讨论】:
标签:
bash
for-loop
command-line
find
【解决方案1】:
如前所述,鼓励使用 xargs,但您也可以通过以下方式避免多次执行 sh:
find . -name 'user_prefs' | while read filename; do echo "whitelist_from basheer@hydrofitgroup.com" >>"$filename"; done
【解决方案2】:
你必须转义'>>',例如这样:
find . -name 'user_prefs' -exec sh -c 'echo "whitelist_from basheer@hydrofitgroup.com" >> {}' \;