Você precisa aplicar ( )
em sua construção OR.
Uma explicação pode ser encontrada na página man:
Please note that -a, when specified implicitly (for example by two tests appearing without an explicit operator between them) or explicitly, has higher precedence than -o. This means that find . -name afile -o -name bfile -print will never print afile.
Exemplo:
touch afile bfile
Sem ( )
:
find . -name afile -o -name bfile -print
./bfile
que tem um implícito -a entre -name bfile
e -print
:
find . -name afile -o -name bfile -a -print
./bfile
Com ( )
, o resultado é o esperado:
find . \( -name afile -o -name bfile \) -print
./afile
./bfile
Seu -a
implícito está entre -o -name "*jenk*.zip"
e ! -path '*/test_dir/*.jar'
.