- Sim, o
!
nega a próxima condição, que é o-exec sh -c 'ls -1 "{}" | egrep -q "*.counts.txt"' \;
. Como esta é uma condição-exec
que é negada, temos que nos lembrar que ela é verdadeira se o comando que ela executa retornar com status 0 (e negada a condição é verdadeira se o status não for 0). - Os argumentos após
-exec
não são passados para um shell, mas são executados diretamente, portanto, não há um conceito de pipe disponível. Se você colocar um caractere de pipe lá, o shell externo (que começou a se localizar) usaria isso e all a saída do find iria para egrep.
Veja man find
para os documentos sobre !
e -exec
args para encontrar.