O primeiro achado fará com que o segundo achado liste tudo duas vezes, a menos que você também exclua o diretório atual. Isso acontece porque a saída da primeira descoberta contém um período.
$ find -maxdepth 1 -type d -print0 |
grep -z -v -Ee 'sensors|\.test' |
xargs.exe -0 -I% find % -name '*.java' |
sort
./dirz/3.java
./dirz/3.java
./foo/2.java
./foo/2.java
./moo/1.java
./moo/1.java
É melhor fazer algo assim:
$ find . -type f -name \*java | grep -v -Ee './(sensors|\.test)'
./dirz/3.java
./foo/2.java
./moo/1.java
Ou até mesmo:
$ echo dirz foo moo | tr \ \n > .search-dirs
$ find 'cat .search-dirs' -type f -name \*java
dirz/3.java
foo/2.java
moo/1.java