Teste g++ *.o $( echo folder/*.o |tr ' ' "\n" | egrep -v folder/main.o )
, assumindo que nenhum dos folder/*.o
tem espaços em seus nomes.
Veja como funciona:
echo folder/*.o
produz uma lista separada por espaços dos nomes de arquivos, com o diretório.
tr ' ' "\n"
altera todos os espaços para novas linhas (fornecendo um nome de arquivo por linha, o que torna egrep
happy.
egrep -v folder/main.o
elimina o nome do arquivo indesejado da lista.
$()
coloca o restante dos nomes dos arquivos na linha de comando. Como $IFS
padrão é SPACE, TAB, NEWLINE, não precisamos tr
deles de volta aos espaços.