find . \
-name 'user_prefs' \
-exec echo "whitelist_from basheer@hydrofitgroup.com" >> {} \;'
我想在所有被
find
找到的文件中添加一行whitelist_from basheer@hydrofitgroup.com
,但我的命令无法运行。它只会创建一个名为'{}'的文件。我应该使用
for
命令吗?谢谢!
find . \
-name 'user_prefs' \
-exec echo "whitelist_from basheer@hydrofitgroup.com" >> {} \;'
find
找到的文件中添加一行whitelist_from basheer@hydrofitgroup.com
,但我的命令无法运行。它只会创建一个名为'{}'的文件。for
命令吗?你必须对 '>>' 进行转义,例如像这样:
find . -name 'user_prefs' -exec sh -c 'echo "whitelist_from basheer@hydrofitgroup.com" >> {}' \;
如前所述,建议使用xargs,但也可以通过以下方法避免多次执行sh:
find . -name 'user_prefs' | while read filename; do echo "whitelist_from basheer@hydrofitgroup.com" >>"$filename"; done