encontrar com várias opções -exec; redirecionando & dev / null para um comando exec envia o processo para o segundo plano

3

Eu tenho um comando find com vários argumentos -exec e gostaria que a saída (stdout e stderr) de um dos comandos fosse suprimida. Quando eu uso & > / path / to / file , ele envia o processo para o segundo plano em vez de redirecionar a saída.

find /some/path -type f -exec sh -c 'scriptA.sh "$1"' _ "{}" \; -exec sh -c 'scriptB.sh "$1" &>/dev/null' _ "{}" \;

Encontrei uma maneira de contornar isso usando o comando abaixo (que também usa o caractere '&'), mas gostaria de saber por que ele envia o processo para o segundo plano em vez de redirecionar a saída como normalmente faria. Então, por que o comando abaixo funciona, mas o comando acima não funciona?

find /some/path -type f -exec sh -c 'scriptA.sh "$1"' _ "{}" \; -exec sh -c 'scriptB.sh "$1" >/dev/null 2>&1' _ "{}" \;

Obrigado!

    
por Matthew 02.02.2012 / 21:44

1 resposta

2

A sintaxe apropriada para redirecionar é 2>&1 . bash aceita a sintaxe &> estendida, mas a variante Bourne shell ou ash que você chamou de find -exec não.

    
por 03.02.2012 / 00:18