O padrão curinga *.java
é expandido pelo seu shell antes de ser passado para o comando find
. Se você tiver um único arquivo foo.java
no diretório atual, o shell executará o comando find . -name foo.java
. Se você tiver dois arquivos bar.java
e foo.java
, o comando find . -name bar.java foo.java
será executado e find
reclamará de um erro de sintaxe. Se não houver nenhum arquivo correspondente no diretório atual, o shell deixará o padrão não expandido, então find . -name *.java
é executado como você deseja.
Para dizer ao shell para não expandir o padrão, para que seja sempre passado como é para find
, cite:
find . -name '*.java'
find . -name "*.java"
find . -name \*.java