Não sei qual é a sua intenção (você não deixou isso claro), mas se for chmod para 700 todos os arquivos que correspondem ao padrão, então, com exceção do seu erro de digitação ( ;\
em vez de \;
), seu comando parece funcionar como pretendido.
No entanto:
when it finds a file containing that string
grep -q
gives me0
so another exec executes but should not.
Sim, deve fazer. 0 significa sucesso significa true, então find
continua a avaliar sua expressão e o segundo -exec
é executado. 1 (ou qualquer valor diferente de 0) significaria falha significaria false, então find
iria causar curto-circuito em sua avaliação (existe um E lógico implícito entre expressões justapostas), então o segundo -exec
não é executado.
Why does it work
Verifique a página de manual do GNU find
:
expr1 expr2
Two expressions in a row are taken to be joined with an implied "and"; expr2 is not evaluated if expr1 is false.