localiza arquivos em todas as subpastas e os usa como entrada

0

Eu tenho um monte de subpastas e cada uma contém um arquivo de entrada an_* e um executável run . A linha de comando para uma execução em uma subpasta é ./run <an_* .

O que eu quero fazer é encontrar todas as subpastas que contêm um arquivo an_* e executar run com an_* como entrada. Minha melhor aposta foi: find -name an_* -execdir ./run <'{}' \; , mas isso não funciona.

    
por Fedor Šimkovic 16.10.2016 / 22:47

1 resposta

0

Se você acabou de soltar o redirecionamento de entrada < na linha de comando find, o shell tentará redirecionar a entrada dada para encontrar . O que você quer é que o redirecionamento aconteça no comando executado por find. Mas find não sabe como fazer o redirecionamento, então você tem que perguntar explicitamente para rodar um shell para analisar o comando que você deu. Algo parecido com isto:

find -name "an_*" -execdir sh -c "./run < {}" \;
    
por 16.10.2016 / 23:18