como encontrar ocorrências de um arquivo usando localizar

como encontrar ocorrências de um arquivo usando localizar

Existem várias instalações de Java em meu sistema, algumas instaladas silenciosamente por IDEs, e eu queria descobrir onde elas estão. Então pensei em usá-los locatepara encontrá-los. Minha primeira tentativa de

locate java

teve vários milhares de resultados encontrados .*java.*.

Existe uma maneira de restringir a localização para apenas encontrar arquivos com um nome exato? Não é o caminho que contém Java. Não são arquivos que contêm Java como parte de seu nome.

PS: Eu tive um problema semelhante antes, então ignore a parte Java e trate isso como um problema de localização de arquivos. Poderia muito bem ser uma questão de encontrar todas as ocorrências de gcc.

Responder1

De man locate:

Para procurar um arquivo com nome exato NAME(não *NAME*),
use locate -b '\NAME'

locate -b '\java'
  • -b- Combine apenas o nome base com os padrões especificados.

Responder2

Com a maioria locatedas implementações:

locate '*/java'

Deveria trabalhar.

Quando o argumento não contém curingas, o argumento é considerado uma string para pesquisar nos caminhos dos arquivos.

Quando contém curingas, o curinga deve corresponder aos caminhos completos. Então aqui, qualquer caminho que termine em /java.

Responder3

findpode ser a melhor maneira de localizarJavaarquivos nomeados.

find . -type f -name *java*

Se você ainda quiser usar localizar você pode usar locate -bou você pode usar

locate java | grep java$

informação relacionada