我正在尝试编写一个脚本来读取源文件列表并gcc
使用以下命令编译它们:find $source -name '*.c' -or -name '*.cpp' -execdir gcc {} -o $output \;
我能够找到源文件,但它们不是用gcc
. 我必须做什么才能真正编译它们?
问问题
649 次
1 回答
2
该-execdir
操作作为表达式的一部分进行评估。-a
优先于-o
,因此find
表达式如下:
find $source \( -name '*.c' \) -or \( -name '*.cpp' -execdir gcc {} -o $output \; \)
您需要在表达式中添加括号以强制find
按照您的意愿行事:
find $source \( -name '*.c' -or -name '*.cpp' \) -execdir gcc {} -o $output \;
一些更简单的例子:
# touch a b
# find . -name a -o -name b -print
./b
# find . -name a -print -o -name b
./a
# find . \( -name a -o -name b \) -print
./b
./a
于 2013-04-23T18:54:54.370 回答