Como executo um comando em cada arquivo dentro de um diretório que corresponda a um padrão?

2

Estou tentando executar um comando em cada arquivo em um diretório (recursivamente) que corresponda a um padrão. Eu preciso do nome do arquivo de cada item que corresponda ao comando no entanto. Isto é o quão longe eu tenho:

find . -name '*.jar'

Isso me fornece todos os arquivos nos quais estou interessado. Agora, preciso executar o seguinte comando em todos os arquivos:

jarsigner -keystore ***** -storepass ****** $FILENAMEHERE

Como faço referência a itens individuais na saída de find, para o comando?

    
por Josh Smeaton 19.08.2010 / 10:56

1 resposta

6

Se jarsigner tiver apenas um nome de arquivo por vez, use

find . -iname '*.jar' | xargs -l jarsigner -keystore ***** -storepass ******

ou

find . -iname '*.jar' -exec jarsigner -keystore ***** -storepass ***** {} \;
    
por 19.08.2010 / 11:10